On Tue Oct 06 09:17:25 2015, jn...@jnthn.net wrote: > On Wed Aug 05 07:37:00 2015, duff wrote: > > <PerlJam> m: '%E3%81%82' ~~ m:ignorecase/['%' (<[abcdef0123456789]> ** > > 2)]+/ && say $/[0]; > > <+camelia> rakudo-moar 0dcbba: OUTPUT«「E3」 「81」 「82」» > > <PerlJam> hoelzro: I guess something is broken with character class > > ranges? > > <jnthn> PerlJam: Other fun question is if you can rely on > > chr(start)..chr(end) being contiguous implying > > chr(uc(start))..chr(uc(end)) being > > <jnthn> PerlJam: And the answer is surely no because that'd make life > > way too easy :) > > <jnthn> PerlJam: So it'll need a bit of care to fix, but shouldn't be > > too bad :) > > <jnthn> Trouble is though that then you lose the nice charrange > > optimization > > <jnthn> Or at least, if you want to keep it you've got some analysis > > to do > > <jnthn> Anyway, long story short I can see why it didn't get done yet. > > I agree it probably should be. :) > > * PerlJam adds to the ticket for now. > > > > The bug is actually in the LTM engine, and can also be triggered as: > > perl6-m -e "'%E3%81%82' ~~ m:ignorecase/['%' (<[a..f]>|x)]+/ && say $/[0]" > > Which wrongly produces no output.
Fixed now, and tests added in S05-metasyntax/charset.t. Also found that charranges did the wrong thing under LTM with ignoremark, and fixed that too (plus tests). And, of course, a test for the ignormark and ignorecase combination for good measure (also passing). /jnthn