On Fri, 11 Nov 2011, ND wrote:

> Perl regexp documentation says:
> 
> When a match has failed, and unless another verb has been involved in failing
> the match and has provided its own name to use, the $REGERROR variable will be
> set to the name of the most recently executed (*MARK:NAME).
> 
> How you think about adding this ability to PCRE. May be the last MARK value
> may be returned by the same variable that in match case.

PCRE should already do this. This is from the test 2 output:

/^(A(*THEN:A)B|C(*THEN:B)D)/K
    CB    
No match, mark = B

If you have a case where it does not return a mark, it is a bug. Note,
however, that the documentation (pcrepattern) says this:

  A name may also be returned after a failed match if the final path
  through the pattern involves (*MARK). However, unless (*MARK) used in
  conjunction with (*COMMIT), this is unlikely to happen for an
  unanchored pattern because, as the starting point for matching is
  advanced, the final check is often with an empty string, causing a
  failure before (*MARK) is reached.

Philip

-- 
Philip Hazel

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

Reply via email to