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 <regex.h> header shall define the structure type, which shall include at least the following member:

size_t    re_nsub    Number of parenthesized subexpressions.

The <regex.h> header shall define the size_t type as described in <sys/types.h>.

The <regex.h> header shall define the type as a signed integer type that can hold the largest value that can be stored in either a type or a type.

The <regex.h> header shall define the structure type, which shall include 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.

The <regex.h> header shall define the following symbolic constants for the parameter to the regcomp(3) function:

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

The <regex.h> header shall define the following symbolic constants for the parameter to the regexec(3) function:

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 <regex.h> header shall define the following symbolic constants as error return values:

() failed to match.
Invalid regular expression.
Invalid collating element referenced.
Invalid character class type referenced.
Trailing <backslash> character 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.

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>

XSH regcomp(3)

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>.

SD5-XBD-ERN-60 is applied.

The obsolescent REG_ENOSYS constant is removed.

This reference page is clarified with respect to macros and symbolic constants.

January 31, 2018 posix.fail