Hi,

I'm having trouble figuring out how to capture duplicate named subpatterns (as allowed by the PCRE_DUPNAMES option). My initial understanding from reading the manual was that I could refer to a subpattern(s) capture using a name instead of the capture order number. While that is true, it seems the named subpattern capture always refers to the _last_ branch in which it was _defined_ and not necessarily matched. The example in the manual is almost exactly like what I'm trying to do so I'll just use it to explain:

(?J)(?<DN>Mon|Fri|Sun)(?:day)?|(?<DN>Tue)(?:sday)?|(?<DN>Wed)(?:nesday)?|(?<DN>Thu)(?:rsday)?|(?<DN>Sat)(?:urday)?

Since only _one_ (or none) of these branches would be captured, I expect <DN> to contain the capture from _that_ branch and not the last. Right now it returns false for all subject except for "Saturday". Did I misunderstand the usage of the PCRE_DUPNAMES option or is this a bug?

PS: I've tried using the branch resetting feature ( (?|) ) and it does indeed solve the above but it doesn't satisfy my requirements since it enforces the subpatterns to be identically named (by order).

Thanks for your time!
--
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev

Reply via email to