On Sat, 24 Mar 2012, ND wrote:

> Please inform, is there any progress in correcting PCRE behaviour when
> lookaheads are at the end of subject string, 'partial hard' rised and no
> symbols are inspected before?

Nothing has changed.

> >PCRE version 8.21 2011-12-12
> >/(?<=a)(?!b)/+
> >\P\Pa
> >Partial match: a
> >Now we swap assertions:
> >PCRE version 8.21 2011-12-12
> >/(?!b)(?<=a)/+
> >\P\Pa
> >  0:
> >  0+
> >Result changes to 'match'. Expected 'partial match'. Is there such assertions
> >swaping can change result?

The behaviour happens because PCRE never returns a partial match with an 
empty string, because it can *always* find a partial match with an empty 
string at the end of the subject.

In the first case, because it has looked behind for "a", it can return a 
partial match. In the second case, it runs out of characters before it 
has inspected anything, and so it cannot give a partial match.

If you are doing multi-segment matching, I guess you have to assume that 
"match" for an empty string at the end of the subject is really a 
partial match, and use the PCRE_INFO_MAXLOOKBEHIND feature (which will 
be in 8.31 - it is already in the SVN repository) to determine how many 
characters to save from the previous segment. 

We want to let 8.30 settle down for a while so we can fix the problems
that are inevitable from the big changes before releasing 8.31, which is
likely to come out sometime in May perhaps.

Philip

-- 
Philip Hazel

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

Reply via email to