On 2012-01-24 10:22, Philip Hazel wrote:

PCRE could tell the application the maximum lookbehind length, but what it cannot tell is whether there is a lookbehind further along the path that is being matched. So I don't think it should change its result.
However, an application can choose to treat "no match" as "partial
match", and retain some characters from the previous segment. So I think the code could be something like this:
 IF hard partial matching AND not anchored[1] AND no match THEN
    Retain maximum lookbehind length[2] in current segment
    Join next segment
    Match again, with start_offset set to point to next segment
[1] PCRE_INFO_OPTIONS can be used to find if anchored.
[2] PCRE_INFO_MAX_LOOKBEHIND does not exist, but it could quite easily
    be implemented. Until it is, you could just guess a suitable number.

It looks as good idea.
I'm not sure that negative PCRE_INFO_MAX_LOOKBEHIND value will be useful. IMHO there is no difference between zero length lookbehind and no lookbehind. In this cases I suggest to return 0 as PCRE_INFO_MAX_LOOKBEHIND value.

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

Reply via email to