On Sat, Mar 25, 2017 at 1:15 AM, ToddAndMargo <toddandma...@zoho.com> wrote: > On 03/24/2017 07:45 PM, Brad Gilbert wrote: >> >> All of these should work >> >> if $Terminal ~~ /xterm/ | /linux/ {} >> if $Terminal ~~ /xterm | linux/ {} >> if $Terminal ~~ /xterm || linux/ {} >> >> Note that | in a regex tries both sides as if in parallel, and goes >> for the longest, > > > Hi Brad, > > What do you mean by longest?
my $a = 'Bart sez cowabunga!'; # matches cowabunga because that's the longest match $a ~~ / cow | cowabunga /; say $/; # "cowabunga" # matches cow because it is the first alternation $a ~~ / cow || cowabunga /; say $/; # "cow" This is useful in writing parsers- when given a choice of keywords that have the same prefix, longest match will find the keyword people expect regardless of the order of the alternations. Keeps people from having to remember to also search for a word boundary at the end, makes it easier to write bug-free grammars. -y