On 9/9/23 13:21, Tatsuo Ishii wrote:
> Thanks for the explanation. Surprising concet of the standard:-)
<quote from 19075-5:2023>
This leaves the choice between traditional NFA and Posix NFA. The
difference between these is that a traditional NFA exits (declares a
match) as soon as it finds the first possible match, whereas a Posix NFA
is obliged to find all possible matches and then choose the “leftmost
longest”. There are examples that show that, even for conventional
regular expression matching on text strings and without back references,
there are patterns for which a Posix NFA is orders of magnitude slower
than a traditional NFA. In addition, reluctant quantifiers cannot be
defined in a Posix NFA, because of the leftmost longest rule.
Therefore it was decided not to use the Posix NFA model, which leaves
the traditional NFA as the model for row pattern matching. Among
available tools that use traditional NFA engines, Perl is the most
influential; therefore Perl was adopted as the design target for pattern
matching rules.
</quote>
> Is it different from SIMILAR TO REs too?
Of course it is. :-) SIMILAR TO uses its own language and rules.
> What if we don't follow the standard, instead we follow POSIX EREs? I
> think this is better for users unless RPR's REs has significant merit
> for users.
This would get big pushback from me.
--
Vik Fearing