RE_COMP(3) | Library Functions Manual | RE_COMP(3)

# NAME

`re_comp`, `re_exec` —
regular expression handler

# LIBRARY

Compatibility Library (libcompat, -lcompat)

# SYNOPSIS

`#include <re_comp.h>`

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), re_format(7)

# HISTORY

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

June 4, 1993 | NetBSD 9.4