On Thu, 1 Oct 2009, Craig Silverstein wrote: > We have this behavior: > // advance one character if we matched an empty string at the same > // place as the last match occurred
What Perl and pcredemo (and pcretest) do is first to check whether there is a non-empty alternative match at the same point, before advancing by one character. > Likely so. It sounds complicated, though. :-) It would be best if > someone who understood both what perl was doing, and C++, could make a > go at any change, assuming one is needed. Indeed yes. Any volunteers reading this??? I think the change might be needed in order to get Sheri's \K example right. \K resets the "start of match" point to "here", so a pattern such as abc\K matches "abc", but reports a match of the empty string at offset 3. The example that started this all off was abc\K|def\K matched against "abcdefghi". Replacing the matches with "-" should yield "abc-def-ghi". I suspect your present code won't yield that, because it will advance past "d" after the first change. Philip -- Philip Hazel -- ## List details at http://lists.exim.org/mailman/listinfo/pcre-dev
