https://bugs.exim.org/show_bug.cgi?id=2106

--- Comment #4 from Philip Hazel <p...@hermes.cam.ac.uk> ---
(In reply to Kyle J. McKay from comment #3)
> 
> I'm coming at this from the point of view of wanting a drop-in replacement
> (at the source code level -- in other words a recompilation is required but
> no source code changes) for system-level POSIX-compatible regex.h functions
> (preferably including support for the *BSDism extensions REG_STARTEND,
> REG_PEND and REG_NOSPEC which are mostly trivial to do with PCRE2;
> REG_NOSPEC makes the pattern "fixed" like fgrep and I'm not sure there's
> something for that in PCRE2).

REG_STARTEND is already there. As you say, REG_PEND is probably easy to do.
There is no PCRE2 equivalent for REG_NOSPEC. Using a pattern matching engine to
search for fixed strings is horribly inefficient. There are nice fast
algorithms for doing that. Somebody should write a library if there isn't one
already.
> 
> I was thinking that overhauling pcreposix.h might be the way to go, but
> perhaps not.  If pcreposix stays the way it is now -- providing exclusively
> PCREs via a POSIX-similar regcomp/regexec API, with the release of the new
> pattern translation functions it would be relatively easy to create a new
> "pcre/regex.h" header and associated pcreregex.c file to make a new
> libpcreregex.a library that provides a 100% POSIX-compatible drop-in
> replacement for the system's regex.h with POSIX-compatible extensions such
> as the *BSDisms and REG_PCRE/REG_JAVASCPT options.

...with one difference. PCRE2, like Perl, returns "first match" (at a given
point in the subject string), whereas POSIX mandates "longest match". However,
I have just in the last few days (while thinking about all this POSIX stuff)
realized that the newly-refactored matching function (not yet released, but
coming soon) probably makes it possible to provide "longest match"
functionality, but at a computational expense, of course. I intend to look into
this once the flurry of existing issues is past.
> 
> Eliminating/reducing the learning curve is a good thing because it seems
> that no matter what the circumstance, when adding new features one thing
> always remains the same, there is never enough time.

That is certainly true!

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-- 
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 

Reply via email to