in reply to The usage of <ALIAS=\IDENT> of Regexp::Grammars

The bug is that Perl does not always pass the complete raw regex into an overload 'qr', so the module cannot always convert it correctly. :-(

In this case, Perl intercepts the \l of the \ldelim and treats it as a "convert the following to lowercase" escape, before Regexp::Grammars ever gets to see the grammar.

The workaround for the current release is not to use rulenames that start with 'l', 'u', 'L', 'U', 'Q', or 'E' in a matchref. Which sucks, I know.

The long term solution (which was just uploaded to CPAN as Regexp::Grammars version 1.020) is to change the entire matchref syntax from <\IDENT> to <\_IDENT>. Yes, that's horribly backwards incompatible, but it's the only solution that doesn't involve some deep and scary hacking on the Perl core. I'm sorry.

Damian