in reply to Re: Backtracking in Parse::RecDescent
in thread Backtracking in Parse::RecDescent
I don't think that explains why the grammar ( "a" | "aa" ) "a" works.
I believe that in P::RD, the default terminal prefix is optional white space. This is why ( "a" | "aa" ) "a" matches.