re_comp, re_exec - regular expression handler

char *re_comp(s)
const char *s;

int re_exec(s)
const char *s;

Re_comp compiles a string into an internal form suitable for
pattern matching. Re_exec checks the argument string against the
last string passed to re_comp.

Re_comp returns 0 if the string s was compiled successfully;
otherwise a string containing an error message is returned. If
re_comp is passed 0 or a null string, it returns without changing
the currently compiled regular expression.

Re_exec returns 1 if the string s matches the last compiled regular
expression, 0 if the string s failed to match the last compiled
regular expression, and -1 if the compiled regular expression was
invalid (indicating an internal error).

The strings passed to both re_comp and re_exec may have trailing or
embedded newline characters; they are terminated by nulls. The
regular expressions recognized are described in the manual entry
for ed(1), given the above difference.

ed(1), ex(1), egrep(1), fgrep(1), grep(1), regexp(3)

Re_exec returns -1 for an internal error.

Re_comp returns one of the following strings if an error occurs:

No previous regular expression,
Regular expression too long,
missing ],
too many pairs,
unmatched .