REGEX.H(7) Miscellaneous Information Manual REGEX.H(7)

regex.hregular expression matching types

#include <regex.h>

The <regex.h> header shall define the structures and symbolic constants used by the regcomp(3), regexec(3), regerror(3), and regfree(3) functions.

The structure type shall contain at least the following member:

size_t    re_nsub    Number of parenthesized subexpressions.

The type size_t shall be defined as described in <sys/types.h> .

The type shall be defined as a signed integer type that can hold the largest value that can be stored in either a type or type . The structure type shall contain at least the following members:

regoff_t    rm_so    Byte offset from start of string
                     to start of substring.
regoff_t    rm_eo    Byte offset from start of string of the
                     first character after the end of substring.

Values for the parameter to the regcomp(3) function are as follows:

Use Extended Regular Expressions.
Ignore case in match.
Report only success or fail in regexec () .
Change the handling of <newline>.

Values for the parameter to the regexec(3) function are as follows:

The circumflex character ( '^' ), when taken as a special character, does not match the beginning of string .
The dollar sign ( '$' ), when taken as a special character, does not match the end of string .

The following constants shall be defined as error return values:

() failed to match.
Invalid regular expression.
Invalid collating element referenced.
Invalid character class type referenced.
Trailing '\' in pattern.
Number in \ digit invalid or in error.
"[]" imbalance.
"\(\)" or "()" imbalance.
"\{\}" imbalance.
Content of "\{\}" invalid: not a number, number too large, more than two numbers, first larger than second.
Invalid endpoint in range expression.
Out of memory.
'?' , '*' , or '+' not preceded by valid regular expression.
[OB] Reserved.

The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.

int    regcomp(regex_t *restrict, const char *restrict, int);
size_t regerror(int, const regex_t *restrict, char *restrict, size_t);
int    regexec(const regex_t *restrict, const char *restrict, size_t,
           regmatch_t[restrict], int);
void   regfree(regex_t *);

The implementation may define additional macros or constants using names beginning with REG_.

None.

None.

None.

<sys/types.h> , the System Interfaces volume of IEEE Std 1003.1-2001 (“POSIX.1”), regcomp(3), the Shell and Utilities volume of IEEE Std 1003.1-2001 (“POSIX.1”)

First released in Issue 4.

Originally derived from the ISO POSIX-2 standard.

The REG_ENOSYS constant is marked obsolescent.

The keyword is added to the prototypes for regcomp(3), regerror(3), and regexec(3).

A statement is added that the size_t type is defined as described in <sys/types.h> .

footer end

December 6, 2001 posix.fail