On Wed, 5 Jun 2019, ND via Pcre-dev wrote: > It seems a bug of Perl start optimizer. It say: > "Did not find floating substr "bc"... > Match rejected by optimizer" > > Please look at PCRE start optimizer.
PCRE2 does not record "c" as necessary after (*ACCEPT). So it does not have this bug. (It only records a single code unit.) > >The simplest fix for PCRE2 is to change (*ACCEPT)<quantifier> into > >(?:(*ACCEPT))<quantifier> at compile time. This avoids any > >implementation requirement at match time and in the JIT. I have done this, and committed the result. However, it seems to me that /a(*ACCEPT)??bc/ is the same as a(?:bc|) though if a, b, and c are complex it may be easier to read. Philip -- Philip Hazel -- ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev
