Existem dois tipos de alternância no regex de Raku: the |
e ||
. Qual é a diferença ?
say 'foobar' ~~ / foo || foobar / # 「foo」
say 'foobar' ~~ / foo | foobar / # 「foobar」
O || é o antigo comportamento de alternância: tente alternar do primeiro declarado ao último
O | tente alternar do átomo declarativo mais longo para o mais curto . É chamada de estratégia Longest Token Matching Spec .
say 'foobar' ~~ / foo || foobar / # 「foo」 is the first declared
say 'foobar' ~~ / foo | foobar / # 「foobar」 is the longest token
Resposta mais detalhada neste post