В регулярном выражении Раку есть два типа чередования: |
и ||
. В чем разница ?
say 'foobar' ~~ / foo || foobar / # 「foo」
say 'foobar' ~~ / foo | foobar / # 「foobar」
|| старое поведение чередования: попробуйте чередование от первого, объявленного до последнего
| попробуйте чередование от самого длинного до самого короткого декларативного атома . Это называется стратегией Longest Token Matching Spec .
say 'foobar' ~~ / foo || foobar / # 「foo」 is the first declared
say 'foobar' ~~ / foo | foobar / # 「foobar」 is the longest token
Более подробный ответ в этом посте