Hi, assertion which does not needs to be true, some kind of logical contradiction :) Funny construct. It is true, that you may have several forms to achive the same purpose, but I would prefer a conditional block here since that would be much more reasonable: (?(?=a(b)))
Regards, Zoltan ND <[email protected]> írta: >On 2011-05-02 13:13, Herczeg Zoltán wrote:> > > You get the same result if you simply drop the quantifier.> No. Try Perl example> (?=a(b))?.*d\1?> against subject 'axbdb' with '?' after assertion and without it.> Results are different.> > > Anyway, if you really need the quantifier, just put a non-capturing > > bracket around it.> Thanx. But the the aim of my post is not to get help about converting such > expressions to non erroneous variation in PCRE.> There are many other cases when converting may be done. But they don't > cause banning of other legal Perl constructions.> For example Perl expression 'a{2}' may be rewritten as 'aa'. But this is > not mean that construct '{2}' must be disallowed in PCRE as erroneous.> > If it seems to be unuseful to repeat assertions more than one time than > PCRE can optimize such quantifiers at compile time to run an assertion > only once.> The ability to repeat an assertion 0 or 1 times is useful (example above).> I don't see a need to break compatibility with Perl in such cases.> > Best regards.> > > -- > ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev -- ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev
