WOLFRAM LANGUAGE TUTORIAL

Patterns Involving Alternatives

patt1|patt2|a pattern that can have one of several forms

Specifying patterns that involve alternatives.

This defines h to give p when its argument is either a or b.
In[1]:=
Click for copyable input
The first two cases give p.
In[2]:=
Click for copyable input
Out[2]=
You can also use alternatives in transformation rules.
In[3]:=
Click for copyable input
Out[3]=
Here is another example, in which one of the alternatives is itself a pattern.
In[4]:=
Click for copyable input
Out[4]=

When you use alternatives in patterns, you should make sure that the same set of names appear in each alternative. When a pattern like (a[x_]|b[x_]) matches an expression, there will always be a definite expression that corresponds to the object x. If you try to match a pattern like (a[x_]|b[y_]), then there still will be definite expressions corresponding to x and y, but the unmatched one will be Sequence[ ].

Here f is used to name the head, which can be either a or b.
In[5]:=
Click for copyable input
Out[5]=