#ifndef NO_REGEX
char    *conv_pat();
#endif

#ifndef NO_REGEX
#ifdef REGCMP
# define        RE_COMP(p)      (Re_pat = regcmp(p, NULL))
# define        BAD_COMP(f)     ((f) == NULL)
# define        RE_EXEC(p)      regex(Re_pat, (p))

char    *Re_pat;

char    *regcmp(), *regex();
#else
# define        RE_COMP(p)      (p = re_comp(p))
# define        BAD_COMP(f)     ((f) != NULL)
# define        RE_EXEC(p)      re_exec(p)

char    *re_comp();
#ifdef SYSV
char    *re_exec();
#else
int     re_exec();
#endif
#endif
#endif


REGEX(3)               C LIBRARY FUNCTIONS               REGEX(3)

NAME
     regex, re_comp, re_exec - regular expression handler

SYNOPSIS
     char *re_comp(s)
     char *s;

     re_exec(s)
     char *s;

DESCRIPTION
     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 a NULL pointer if the string  s  was  com-
     piled  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  com-
     piled  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 null characters.  The regular expressions recognized  are
     described  in  the  manual  entry for ed(1), given the above
     difference.

SEE ALSO
     ed(1), ex(1), grep(1V)

DIAGNOSTICS
     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
 
