The order of precedence for pattern matching is as follows:
-
{}
-
:
-
whitespace . ..
-
?
-
|
The alternative operator has the lowest precedence. For example, suppose there are four patterns: A, B, C, and D.
A B|C D
is equivalent to
{A B}|{C D}
The example matches an input of A followed by B, or it matches an input of C followed by D.
Grouping patterns by using the braces has the highest level of precedence. For the patterns A, B, C, and D:
{A|B} C D
is not equivalent to
A|B C D