Let us look once again to our naïve regex for matching phone numbers:
rx/ \+? (\d || \s || \-)+ /
Vertical bars separate different variants within the group in parentheses. It can be either \d, or \s, or \-. In the context of regexes, this is call alternation. Different variants are, correspondingly, called alternatives.
In Perl 6, there are two forms of alternation separator in regexes—single | and double || vertical bars . With a single vertical bar, the longest variant always wins. With the double bar, the first matched alternative wins.
In the phone number example, each alternative is exactly one symbol long. So, there is no difference between | and || there. In other cases, the choice of the operator may drastically change the result.
For example, take the two regexes from the following example and match the forms of an adjective...