regex(5)


regex.h -- regular expression matching utilities

Synopsis

   #include <regex.h>

Description

The regex.h header defines the structures and symbolic constants used by regcomp, regexec, regerror and regfree.

The structure type regex_t contains at least the following member:

size_t re_nsub
Number of parenthesized subexpressions.

 size_t  re_nsub

The type regoff_t is defined as a signed arithmetic type that can hold the largest value that can be stored in either a type of off_t or ssize_t. The structure type regmatch_t contains 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.

 regoff_t  rm_so
 regoff_t  rm_eo

Values for cflags passed to regcomp:


REG_EXTENDED
use extended regular expression.

REG__ICASE
ignore case in match.

REG_NOSUB
report only success or fail in regexec.

REG_NEWLINE
change the handling of newline.

Values for eflags passed to regexec:


REG_NOTBOL
The circumflex character (^), when taken as a special character, will not match the beginning of string.

REG_NOTEOL
The dollar sign ($), when taken as a special character, will not match the end of string.

The following constants are defined as error return values:


REG_NOMATCH
regexec failed to match.

REG_BADPAT
invalid regular expression.

REG_ECOLLATE
invalid collating element referenced.

REG_ECTYPE
invalid character class type referenced.

REG_EESCAPE
Trailing \ in pattern.

REG_ESUBREG
Number in \digit invalid or in error.

REG_EBRACK
[] imbalance.

REG_EPAREN
\(\) or () imbalance.

REG_EBRACE
\{\} imbalance.

REG_BADBR
Content of \{\} invalid: not a number, number too large, more than two numbers, first larger than second.

REG_ERANGE
Invalid endpoint in range expression.

REG_ESPACE
Out of memory.

REG_BADRPT
?, * or + not preceded by valid regular expression.

REG_ENOSYS
The implementation does not support the function

The following are declared as functions and may also be declared as macros:

   extern int regcomp(regex_t *preg, const char *pattern, int cflags);
   extern int regexec(const regex_t *preg, const char *string,
           size_t nmatch, regmatch_t *pmatch, int eflags);
   extern size_t regerror(int errcode, const regex_t *preg,
           char *errbuf, size_t errbuf_size);
   extern void regfree(regex_t *preg);

References

regcomp(3C)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004