On 2012-07-09 10:51, Zoltán Herczeg wrote:
> If DOTALL is set the result is the same. It seems that is_anchored() is in> action. I think PCRE must not assume such patterns as anchored.
No.

Yes. Consider followed pattern:

PCRE version 8.31 2012-07-06
/(?>.*?a)b/sI
Capturing subpattern count = 0
Options: ANCHORED DOTALL
No first char
Need char = 'b'
aab
No match

There are to identical places in pcre_compile.c. One of them you already describe:

/* .* means "start at start or after \n" if it isn't in brackets that
   may be referenced. */

and another is in is_anchored() procedure:

/* .* is not anchored unless DOTALL is set (which generates OP_ALLANY) and
   it isn't in brackets that are or may be referenced. */

And you are right: not only atomic group but some backtracking verbs gives same result.
May be some code correction needed in those two places.

--
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 

Reply via email to