2014-10-21 18:33:30 +02:00
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<title>pcre2_compile specification</title>
|
|
|
|
</head>
|
|
|
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
|
|
|
<h1>pcre2_compile man page</h1>
|
|
|
|
<p>
|
|
|
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
This page is part of the PCRE2 HTML documentation. It was generated
|
|
|
|
automatically from the original man page. If there is any nonsense in it,
|
|
|
|
please consult the man page, in case the conversion went wrong.
|
|
|
|
<br>
|
|
|
|
<br><b>
|
|
|
|
SYNOPSIS
|
|
|
|
</b><br>
|
|
|
|
<P>
|
|
|
|
<b>#include <pcre2.h></b>
|
|
|
|
</P>
|
|
|
|
<P>
|
|
|
|
<b>pcre2_code *pcre2_compile(PCRE2_SPTR <i>pattern</i>, PCRE2_SIZE <i>length</i>,</b>
|
|
|
|
<b> uint32_t <i>options</i>, int *<i>errorcode</i>, PCRE2_SIZE *<i>erroroffset,</i></b>
|
|
|
|
<b> pcre2_compile_context *<i>ccontext</i>);</b>
|
|
|
|
</P>
|
|
|
|
<br><b>
|
|
|
|
DESCRIPTION
|
|
|
|
</b><br>
|
|
|
|
<P>
|
|
|
|
This function compiles a regular expression pattern into an internal form. Its
|
|
|
|
arguments are:
|
|
|
|
<pre>
|
|
|
|
<i>pattern</i> A string containing expression to be compiled
|
|
|
|
<i>length</i> The length of the string or PCRE2_ZERO_TERMINATED
|
|
|
|
<i>options</i> Option bits
|
|
|
|
<i>errorcode</i> Where to put an error code
|
|
|
|
<i>erroffset</i> Where to put an error offset
|
|
|
|
<i>ccontext</i> Pointer to a compile context or NULL
|
|
|
|
</pre>
|
2017-03-24 17:53:38 +01:00
|
|
|
The length of the pattern and any error offset that is returned are in code
|
|
|
|
units, not characters. A compile context is needed only if you want to provide
|
|
|
|
custom memory allocation functions, or to provide an external function for
|
|
|
|
system stack size checking, or to change one or more of these parameters:
|
2014-10-21 18:33:30 +02:00
|
|
|
<pre>
|
2017-03-24 17:53:38 +01:00
|
|
|
What \R matches (Unicode newlines, or CR, LF, CRLF only);
|
|
|
|
PCRE2's character tables;
|
|
|
|
The newline character sequence;
|
|
|
|
The compile time nested parentheses limit;
|
|
|
|
The maximum pattern length (in code units) that is allowed.
|
2017-06-16 19:57:18 +02:00
|
|
|
The additional options bits (see pcre2_set_compile_extra_options())
|
2014-10-21 18:33:30 +02:00
|
|
|
</pre>
|
2017-03-24 17:53:38 +01:00
|
|
|
The option bits are:
|
2014-10-21 18:33:30 +02:00
|
|
|
<pre>
|
|
|
|
PCRE2_ANCHORED Force pattern anchoring
|
2017-03-24 17:53:38 +01:00
|
|
|
PCRE2_ALLOW_EMPTY_CLASS Allow empty classes
|
2014-10-21 18:33:30 +02:00
|
|
|
PCRE2_ALT_BSUX Alternative handling of \u, \U, and \x
|
2015-06-18 18:39:25 +02:00
|
|
|
PCRE2_ALT_CIRCUMFLEX Alternative handling of ^ in multiline mode
|
2017-03-24 17:53:38 +01:00
|
|
|
PCRE2_ALT_VERBNAMES Process backslashes in verb names
|
2014-10-21 18:33:30 +02:00
|
|
|
PCRE2_AUTO_CALLOUT Compile automatic callouts
|
|
|
|
PCRE2_CASELESS Do caseless matching
|
|
|
|
PCRE2_DOLLAR_ENDONLY $ not to match newline at end
|
|
|
|
PCRE2_DOTALL . matches anything including NL
|
|
|
|
PCRE2_DUPNAMES Allow duplicate names for subpatterns
|
2017-04-06 20:02:40 +02:00
|
|
|
PCRE2_ENDANCHORED Pattern can match only at end of subject
|
2014-10-21 18:33:30 +02:00
|
|
|
PCRE2_EXTENDED Ignore white space and # comments
|
|
|
|
PCRE2_FIRSTLINE Force matching to be before newline
|
2017-07-19 18:04:15 +02:00
|
|
|
PCRE2_LITERAL Pattern characters are all literal
|
2019-10-17 18:39:38 +02:00
|
|
|
PCRE2_MATCH_INVALID_UTF Enable support for matching invalid UTF
|
2018-06-17 16:13:28 +02:00
|
|
|
PCRE2_MATCH_UNSET_BACKREF Match unset backreferences
|
2014-10-21 18:33:30 +02:00
|
|
|
PCRE2_MULTILINE ^ and $ match newlines within data
|
2015-06-18 18:39:25 +02:00
|
|
|
PCRE2_NEVER_BACKSLASH_C Lock out the use of \C in patterns
|
2014-10-21 18:33:30 +02:00
|
|
|
PCRE2_NEVER_UCP Lock out PCRE2_UCP, e.g. via (*UCP)
|
|
|
|
PCRE2_NEVER_UTF Lock out PCRE2_UTF, e.g. via (*UTF)
|
|
|
|
PCRE2_NO_AUTO_CAPTURE Disable numbered capturing paren-
|
|
|
|
theses (named ones available)
|
|
|
|
PCRE2_NO_AUTO_POSSESS Disable auto-possessification
|
2015-01-02 18:09:16 +01:00
|
|
|
PCRE2_NO_DOTSTAR_ANCHOR Disable automatic anchoring for .*
|
2014-10-21 18:33:30 +02:00
|
|
|
PCRE2_NO_START_OPTIMIZE Disable match-time start optimizations
|
|
|
|
PCRE2_NO_UTF_CHECK Do not check the pattern for UTF validity
|
|
|
|
(only relevant if PCRE2_UTF is set)
|
|
|
|
PCRE2_UCP Use Unicode properties for \d, \w, etc.
|
|
|
|
PCRE2_UNGREEDY Invert greediness of quantifiers
|
2017-03-24 17:53:38 +01:00
|
|
|
PCRE2_USE_OFFSET_LIMIT Enable offset limit for unanchored matching
|
2014-10-21 18:33:30 +02:00
|
|
|
PCRE2_UTF Treat pattern and subjects as UTF strings
|
|
|
|
</pre>
|
2017-03-24 17:53:38 +01:00
|
|
|
PCRE2 must be built with Unicode support (the default) in order to use
|
|
|
|
PCRE2_UTF, PCRE2_UCP and related options.
|
2014-10-21 18:33:30 +02:00
|
|
|
</P>
|
|
|
|
<P>
|
2019-02-12 18:50:19 +01:00
|
|
|
Additional options may be set in the compile context via the
|
|
|
|
<a href="pcre2_set_compile_extra_options.html"><b>pcre2_set_compile_extra_options</b></a>
|
|
|
|
function.
|
|
|
|
</P>
|
|
|
|
<P>
|
2022-04-22 11:38:37 +02:00
|
|
|
If either of <i>errorcode</i> or <i>erroroffset</i> is NULL, the function returns
|
|
|
|
NULL immediately. Otherwise, the yield of this function is a pointer to a
|
|
|
|
private data structure that contains the compiled pattern, or NULL if an error
|
|
|
|
was detected. In the error case, a text error message can be obtained by
|
|
|
|
passing the value returned via the <i>errorcode</i> argument to the the
|
|
|
|
<b>pcre2_get_error_message()</b> function. The offset (in code units) where the
|
|
|
|
error was encountered is returned via the <i>erroroffset</i> argument. Both
|
|
|
|
values are set to zero for a successful return.
|
2014-10-21 18:33:30 +02:00
|
|
|
</P>
|
|
|
|
<P>
|
2017-03-24 17:53:38 +01:00
|
|
|
There is a complete description of the PCRE2 native API, with more detail on
|
|
|
|
each option, in the
|
2014-10-21 18:33:30 +02:00
|
|
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
2017-03-24 17:53:38 +01:00
|
|
|
page, and a description of the POSIX API in the
|
2014-10-21 18:33:30 +02:00
|
|
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
|
|
|
page.
|
|
|
|
<p>
|
|
|
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
|
|
|
</p>
|