| 6 |
and semantics are as close as possible to those of the Perl 5 language. |
and semantics are as close as possible to those of the Perl 5 language. |
| 7 |
|
|
| 8 |
Written by Philip Hazel |
Written by Philip Hazel |
| 9 |
Copyright (c) 1997-2006 University of Cambridge |
Copyright (c) 1997-2007 University of Cambridge |
| 10 |
|
|
| 11 |
----------------------------------------------------------------------------- |
----------------------------------------------------------------------------- |
| 12 |
Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
| 78 |
REG_BADPAT, /* unrecognized character after (?< */ |
REG_BADPAT, /* unrecognized character after (?< */ |
| 79 |
REG_BADPAT, /* lookbehind assertion is not fixed length */ |
REG_BADPAT, /* lookbehind assertion is not fixed length */ |
| 80 |
REG_BADPAT, /* malformed number or name after (?( */ |
REG_BADPAT, /* malformed number or name after (?( */ |
| 81 |
REG_BADPAT, /* conditional group containe more than two branches */ |
REG_BADPAT, /* conditional group contains more than two branches */ |
| 82 |
REG_BADPAT, /* assertion expected after (?( */ |
REG_BADPAT, /* assertion expected after (?( */ |
| 83 |
REG_BADPAT, /* (?R or (?digits must be followed by ) */ |
REG_BADPAT, /* (?R or (?digits must be followed by ) */ |
| 84 |
REG_ECTYPE, /* unknown POSIX class name */ |
REG_ECTYPE, /* unknown POSIX class name */ |
| 93 |
REG_BADPAT, /* closing ) for (?C expected */ |
REG_BADPAT, /* closing ) for (?C expected */ |
| 94 |
REG_BADPAT, /* recursive call could loop indefinitely */ |
REG_BADPAT, /* recursive call could loop indefinitely */ |
| 95 |
REG_BADPAT, /* unrecognized character after (?P */ |
REG_BADPAT, /* unrecognized character after (?P */ |
| 96 |
REG_BADPAT, /* syntax error after (?P */ |
REG_BADPAT, /* syntax error in subpattern name (missing terminator) */ |
| 97 |
REG_BADPAT, /* two named subpatterns have the same name */ |
REG_BADPAT, /* two named subpatterns have the same name */ |
| 98 |
REG_BADPAT, /* invalid UTF-8 string */ |
REG_BADPAT, /* invalid UTF-8 string */ |
| 99 |
REG_BADPAT, /* support for \P, \p, and \X has not been compiled */ |
REG_BADPAT, /* support for \P, \p, and \X has not been compiled */ |
| 102 |
REG_BADPAT, /* subpattern name is too long (maximum 32 characters) */ |
REG_BADPAT, /* subpattern name is too long (maximum 32 characters) */ |
| 103 |
REG_BADPAT, /* too many named subpatterns (maximum 10,000) */ |
REG_BADPAT, /* too many named subpatterns (maximum 10,000) */ |
| 104 |
REG_BADPAT, /* repeated subpattern is too long */ |
REG_BADPAT, /* repeated subpattern is too long */ |
| 105 |
REG_BADPAT /* octal value is greater than \377 (not in UTF-8 mode) */ |
REG_BADPAT, /* octal value is greater than \377 (not in UTF-8 mode) */ |
| 106 |
|
REG_BADPAT, /* internal error: overran compiling workspace */ |
| 107 |
|
REG_BADPAT, /* internal error: previously-checked referenced subpattern not found */ |
| 108 |
|
REG_BADPAT, /* DEFINE group contains more than one branch */ |
| 109 |
|
REG_BADPAT, /* repeating a DEFINE group is not allowed */ |
| 110 |
|
REG_INVARG, /* inconsistent NEWLINE options */ |
| 111 |
|
REG_BADPAT /* \g is not followed followed by an (optionally braced) non-zero number */ |
| 112 |
}; |
}; |
| 113 |
|
|
| 114 |
/* Table of texts corresponding to POSIX error codes */ |
/* Table of texts corresponding to POSIX error codes */ |
| 141 |
* Translate error code to string * |
* Translate error code to string * |
| 142 |
*************************************************/ |
*************************************************/ |
| 143 |
|
|
| 144 |
PCRE_DATA_SCOPE size_t |
PCREPOSIX_EXP_DEFN size_t |
| 145 |
regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size) |
regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size) |
| 146 |
{ |
{ |
| 147 |
const char *message, *addmessage; |
const char *message, *addmessage; |
| 176 |
* Free store held by a regex * |
* Free store held by a regex * |
| 177 |
*************************************************/ |
*************************************************/ |
| 178 |
|
|
| 179 |
PCRE_DATA_SCOPE void |
PCREPOSIX_EXP_DEFN void |
| 180 |
regfree(regex_t *preg) |
regfree(regex_t *preg) |
| 181 |
{ |
{ |
| 182 |
(pcre_free)(preg->re_pcre); |
(pcre_free)(preg->re_pcre); |
| 199 |
various non-zero codes on failure |
various non-zero codes on failure |
| 200 |
*/ |
*/ |
| 201 |
|
|
| 202 |
PCRE_DATA_SCOPE int |
PCREPOSIX_EXP_DEFN int |
| 203 |
regcomp(regex_t *preg, const char *pattern, int cflags) |
regcomp(regex_t *preg, const char *pattern, int cflags) |
| 204 |
{ |
{ |
| 205 |
const char *errorptr; |
const char *errorptr; |
| 241 |
be set. When this is the case, the nmatch and pmatch arguments are ignored, and |
be set. When this is the case, the nmatch and pmatch arguments are ignored, and |
| 242 |
the only result is yes/no/error. */ |
the only result is yes/no/error. */ |
| 243 |
|
|
| 244 |
PCRE_DATA_SCOPE int |
PCREPOSIX_EXP_DEFN int |
| 245 |
regexec(const regex_t *preg, const char *string, size_t nmatch, |
regexec(const regex_t *preg, const char *string, size_t nmatch, |
| 246 |
regmatch_t pmatch[], int eflags) |
regmatch_t pmatch[], int eflags) |
| 247 |
{ |
{ |