Like I said, greedy is the default, *.? says *don't* be greedy. You wanted .* for greedy match. But even with that, the extra .* before the f was telling it to eat stuff (greedily, since no ?, so it out-greed-ed the captured non-greedy .*?).
On Friday, August 4, 2017, ToddAndMargo <toddandma...@zoho.com> wrote: > On Friday, August 4, 2017, ToddAndMargo <toddandma...@zoho.com <mailto: >>> toddandma...@zoho.com>> wrote: >>> >>> Hi All, >>> >>> I NEED TO BE GREEDY! HAHA HAHA <miniacle laughter continues>. >>> >>> Okay, I am back in control of myself (for the moment). >>> >>> What am I doing wrong here? >>> >>> perl6 -e 'my $x="a b c d e f"; $x ~~ m/.*?(c.*?).*f/; say "<$0>";' >>> <c> >>> >>> I am after >>> <c d e > >>> >>> I want the space at the end too >>> >> > On 08/04/2017 12:30 PM, Brandon Allbery wrote: > >> The ? is the opposite of greedy, just as in pcre/perl 5. Greedy is the >> default. I also don't see why you have a .* before f if you want to capture >> everything before the f. >> >> > Huh??? <maniacal laughter stops>. Oh poop. You called it. > > > With the space: > $ perl6 -e 'my $x="a b c d e f"; $x ~~ m/(c.*?)f/; say "<$0>";' > <c d e > > > Without the space: > $ perl6 -e 'my $x="a b c d e f"; $x ~~ m/(c.*?)" "f/; say "<$0>";' > <c d e> > > Thank you! > > And just when I thought I had an excuse to be greedy. :'( > -- brandon s allbery kf8nh sine nomine associates allber...@gmail.com ballb...@sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net