June 4, 1993 RE_COMP 3

### NAME

re_comp, re_exec - regular expression handler

### LIBRARY

Compatibility Library (libcompat, -lcompat)

### SYNOPSIS

```char``*` re_comp(```const char *s`)
```int` re_exec(```const char *s`)

### DESCRIPTION

This interface is made obsolete by regex(3). It is available from the compatibility library, libcompat.

The re_comp(``) function compiles a string into an internal form suitable for pattern matching. The re_exec(``) function checks the argument string against the last string passed to re_comp(``).

The re_comp(``) function 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.

The re_exec(``) function 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 ```NUL`s. The regular expressions recognized are described in the manual entry for ed(1), given the above difference.

### DIAGNOSTICS

The re_exec(``) function returns -1 for an internal error.

The re_comp(``) function returns one of the following strings if an error occurs:

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

### SEE ALSO

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

### HISTORY

The re_comp(``) and re_exec(``) functions appeared in 4.0BSD.