Concentrate knowledge about the `pcre' API in one place.
Introduce a new `regexp' API in the library which knows about `pcre' and
actually invokes `pcre_...' functions. Remove this knowledge from
everywhere else.
The new API is, of course, suspiciously similar to `pcre' in many ways,
but there are some differences.
* Sizes, lengths, and offsets, are all `size_t' now. In particular,
this means that the `ovector' type has changed.
* Errors are reported differently: rather than returning a pointer to
a static string, `regexp_compile' writes the error string into a
caller-provided buffer.
Observant readers might notice that these changes make the interface
more similar to the `pcre2' API. They'd be right, and this is not a
coincidence. But for now, there's no functional change.
15 files changed: