  Pattern matching is a widely used technique in functional languages,
especially those in the ML and Haskell traditions, where it is at the core of
the semantics. In languages in the Lisp tradition, in contrast, pattern
matching it typically provided by libraries built with macros. We present
match, a sophisticated pattern matcher for Racket, implemented as language
extension. using macros. The system supports novel and widely-useful
pattern-matching forms, and is itself extensible. The extensibility of match is
implemented via a general technique for creating extensible language
extensions.
