One of the unique strengths of the Wolfram Language is its powerful and succinctyet highly readablesymbolic pattern language. Convenient both for immediate use in individual functions, and for systematic large-scale programming, the Wolfram Language's pattern language generalizes concepts like regular expressions to describe general patterns for arbitrary symbolic structures.

Basic Pattern Objects

_ (Blank) any expression (a "blank" to be filled in)

x_ any expression, to be referred to as x

__ (BlankSequence) any sequence of one or more expressions

___ (BlankNullSequence) any sequence of zero or more expressions

Composite Patterns

p|p|p (Alternatives) any of several alternatives

p.. (Repeated), p... (RepeatedNull) a pattern to be repeated

x:p (Pattern) an arbitrary pattern, to be referred to as x

Except anything except a specified pattern

Longest, Shortest longest, shortest possible matches

OptionsPattern  ▪  PatternSequence  ▪  Verbatim  ▪  HoldPattern

OrderlessPatternSequence elements in any order

KeyValuePattern an association or list of rules containing specified elements

Restrictions on Patterns

_h pattern with a specified head h (e.g. _Integer)

Condition (/;) condition on a pattern (e.g. )

PatternTest (?) pattern with a function test (e.g. _?NumberQ)

Pattern Defaults

_:e (Optional) pattern that defaults to e if omitted

_. (Optional) pattern with predefined default

Default predefined default arguments for a function

Attributes Affecting Patterns

Orderless  ▪  Flat  ▪  OneIdentity

String Patterns »

StringExpression symbolic string pattern

Pattern Matching Functions »

MatchQ  ▪  Cases  ▪  Position  ▪  Count  ▪  ...