True in Haskell, but not e.g. in Scala. In Scala, pattern matching is done using partial functions that are defined only for certain patterns. E.g. it's totally legal to write:
obj match {
case Foo(x) => ...
case Bar(y, z) => ...
// no Baz here
}