> A Perl developer has admitted there is some ambiguity, but suggests that
> (*COMMIT) just means "never advance the starting point". That pattern
> can find a match without advancing the starting point.

The documentation says two rules:

1) It's a zero-width pattern similar to (*SKIP) , except that when backtracked 
into on failure it causes the match to fail outright.
2) No further attempts to find a valid match by advancing the start pointer 
will occur again.

If the first rule is not honored at all, the description is clearly wrong. 
However, you can put (*COMMIT) at the beginning of the pattern which ignores 
the 1st rule, so changing the verb would be a hidden feature removal.

Anyway it concerns me that the verbs are not clearly defined / implemented in 
perl. They are quite powerful tools, but undefined behavior breaks them. The 
documentation should list exceptions, e.g. they work differently inside 
assertions. If that is unintended then fix assertions.

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

Reply via email to