man-pages/man3/pcre_compile2.3.html
2021-03-31 01:06:50 +01:00

134 lines
9.3 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>Man page of PCRE_COMPILE2</TITLE>
</HEAD><BODY>
<H1>PCRE_COMPILE2</H1>
Section: C Library Functions (3)<BR>Updated: 01 October 2013<BR><A HREF="#index">Index</A>
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
PCRE - Perl-compatible regular expressions
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
<P>
<B>#include &lt;<A HREF="file:///usr/include/pcre.h">pcre.h</A>&gt;</B>
<P>
<PRE>
<B>pcre *pcre_compile2(const char *</B><I>pattern</I>, int <I>options</I>,
<B> int *</B><I>errorcodeptr</I>,
<B> const char **</B><I>errptr</I>, int *<I>erroffset</I>,
<B> const unsigned char *</B><I>tableptr</I>);
<B>pcre16 *pcre16_compile2(PCRE_SPTR16 </B><I>pattern</I>, int <I>options</I>,
<B> int *</B><I>errorcodeptr</I>,
<B> const char **</B><I>errptr</I>, int *<I>erroffset</I>,
<B> const unsigned char *</B><I>tableptr</I>);
<B>pcre32 *pcre32_compile2(PCRE_SPTR32 </B><I>pattern</I>, int <I>options</I>,
<B> int *</B><I>errorcodeptr</I>
<B> const char **</B><I>errptr</I>, int *<I>erroffset</I>,
<B> const unsigned char *</B><I>tableptr</I>);
</PRE>
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>
<P>
This function compiles a regular expression into an internal form. It is the
same as <B>pcre[16|32]_compile()</B>, except for the addition of the
<I>errorcodeptr</I> argument. The arguments are:
<P>
<BR>&nbsp;&nbsp;<I>pattern</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;zero-terminated&nbsp;string&nbsp;containing&nbsp;the
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;regular&nbsp;expression&nbsp;to&nbsp;be&nbsp;compiled
<BR>&nbsp;&nbsp;<I>options</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zero&nbsp;or&nbsp;more&nbsp;option&nbsp;bits
<BR>&nbsp;&nbsp;<I>errorcodeptr</I>&nbsp;&nbsp;Where&nbsp;to&nbsp;put&nbsp;an&nbsp;error&nbsp;code
<BR>&nbsp;&nbsp;<I>errptr</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Where&nbsp;to&nbsp;put&nbsp;an&nbsp;error&nbsp;message
<BR>&nbsp;&nbsp;<I>erroffset</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset&nbsp;in&nbsp;pattern&nbsp;where&nbsp;error&nbsp;was&nbsp;found
<BR>&nbsp;&nbsp;<I>tableptr</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pointer&nbsp;to&nbsp;character&nbsp;tables,&nbsp;or&nbsp;NULL&nbsp;to
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use&nbsp;the&nbsp;built-in&nbsp;default
<P>
The option bits are:
<P>
<BR>&nbsp;&nbsp;PCRE_ANCHORED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Force&nbsp;pattern&nbsp;anchoring
<BR>&nbsp;&nbsp;PCRE_AUTO_CALLOUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compile&nbsp;automatic&nbsp;callouts
<BR>&nbsp;&nbsp;PCRE_BSR_ANYCRLF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\R&nbsp;matches&nbsp;only&nbsp;CR,&nbsp;LF,&nbsp;or&nbsp;CRLF
<BR>&nbsp;&nbsp;PCRE_BSR_UNICODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\R&nbsp;matches&nbsp;all&nbsp;Unicode&nbsp;line&nbsp;endings
<BR>&nbsp;&nbsp;PCRE_CASELESS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Do&nbsp;caseless&nbsp;matching
<BR>&nbsp;&nbsp;PCRE_DOLLAR_ENDONLY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&nbsp;not&nbsp;to&nbsp;match&nbsp;newline&nbsp;at&nbsp;end
<BR>&nbsp;&nbsp;PCRE_DOTALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;matches&nbsp;anything&nbsp;including&nbsp;NL
<BR>&nbsp;&nbsp;PCRE_DUPNAMES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allow&nbsp;duplicate&nbsp;names&nbsp;for&nbsp;subpatterns
<BR>&nbsp;&nbsp;PCRE_EXTENDED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ignore&nbsp;white&nbsp;space&nbsp;and&nbsp;#&nbsp;comments
<BR>&nbsp;&nbsp;PCRE_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCRE&nbsp;extra&nbsp;features
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(not&nbsp;much&nbsp;use&nbsp;currently)
<BR>&nbsp;&nbsp;PCRE_FIRSTLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Force&nbsp;matching&nbsp;to&nbsp;be&nbsp;before&nbsp;newline
<BR>&nbsp;&nbsp;PCRE_JAVASCRIPT_COMPAT&nbsp;&nbsp;JavaScript&nbsp;compatibility
<BR>&nbsp;&nbsp;PCRE_MULTILINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^&nbsp;and&nbsp;$&nbsp;match&nbsp;newlines&nbsp;within&nbsp;data
<BR>&nbsp;&nbsp;PCRE_NEVER_UTF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lock&nbsp;out&nbsp;UTF,&nbsp;e.g.&nbsp;via&nbsp;(*UTF)
<BR>&nbsp;&nbsp;PCRE_NEWLINE_ANY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Recognize&nbsp;any&nbsp;Unicode&nbsp;newline&nbsp;sequence
<BR>&nbsp;&nbsp;PCRE_NEWLINE_ANYCRLF&nbsp;&nbsp;&nbsp;&nbsp;Recognize&nbsp;CR,&nbsp;LF,&nbsp;and&nbsp;CRLF&nbsp;as&nbsp;newline
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sequences
<BR>&nbsp;&nbsp;PCRE_NEWLINE_CR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;CR&nbsp;as&nbsp;the&nbsp;newline&nbsp;sequence
<BR>&nbsp;&nbsp;PCRE_NEWLINE_CRLF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;CRLF&nbsp;as&nbsp;the&nbsp;newline&nbsp;sequence
<BR>&nbsp;&nbsp;PCRE_NEWLINE_LF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;LF&nbsp;as&nbsp;the&nbsp;newline&nbsp;sequence
<BR>&nbsp;&nbsp;PCRE_NO_AUTO_CAPTURE&nbsp;&nbsp;&nbsp;&nbsp;Disable&nbsp;numbered&nbsp;capturing&nbsp;paren-
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theses&nbsp;(named&nbsp;ones&nbsp;available)
<BR>&nbsp;&nbsp;PCRE_NO_AUTO_POSSESS&nbsp;&nbsp;&nbsp;&nbsp;Disable&nbsp;auto-possessification
<BR>&nbsp;&nbsp;PCRE_NO_START_OPTIMIZE&nbsp;&nbsp;Disable&nbsp;match-time&nbsp;start&nbsp;optimizations
<BR>&nbsp;&nbsp;PCRE_NO_UTF16_CHECK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Do&nbsp;not&nbsp;check&nbsp;the&nbsp;pattern&nbsp;for&nbsp;UTF-16
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;validity&nbsp;(only&nbsp;relevant&nbsp;if
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCRE_UTF16&nbsp;is&nbsp;set)
<BR>&nbsp;&nbsp;PCRE_NO_UTF32_CHECK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Do&nbsp;not&nbsp;check&nbsp;the&nbsp;pattern&nbsp;for&nbsp;UTF-32
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;validity&nbsp;(only&nbsp;relevant&nbsp;if
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCRE_UTF32&nbsp;is&nbsp;set)
<BR>&nbsp;&nbsp;PCRE_NO_UTF8_CHECK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Do&nbsp;not&nbsp;check&nbsp;the&nbsp;pattern&nbsp;for&nbsp;UTF-8
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;validity&nbsp;(only&nbsp;relevant&nbsp;if
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCRE_UTF8&nbsp;is&nbsp;set)
<BR>&nbsp;&nbsp;PCRE_UCP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use&nbsp;Unicode&nbsp;properties&nbsp;for&nbsp;\d,&nbsp;\w,&nbsp;etc.
<BR>&nbsp;&nbsp;PCRE_UNGREEDY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invert&nbsp;greediness&nbsp;of&nbsp;quantifiers
<BR>&nbsp;&nbsp;PCRE_UTF16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Run&nbsp;<B>pcre16_compile()</B>&nbsp;in&nbsp;UTF-16&nbsp;mode
<BR>&nbsp;&nbsp;PCRE_UTF32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Run&nbsp;<B>pcre32_compile()</B>&nbsp;in&nbsp;UTF-32&nbsp;mode
<BR>&nbsp;&nbsp;PCRE_UTF8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Run&nbsp;<B>pcre_compile()</B>&nbsp;in&nbsp;UTF-8&nbsp;mode
<P>
PCRE must be built with UTF support in order to use PCRE_UTF8/16/32 and
PCRE_NO_UTF8/16/32_CHECK, and with UCP support if PCRE_UCP is used.
<P>
The yield of the function is a pointer to a private data structure that
contains the compiled pattern, or NULL if an error was detected. Note that
compiling regular expressions with one version of PCRE for use with a different
version is not guaranteed to work and may cause crashes.
<P>
There is a complete description of the PCRE native API in the
<B>pcreapi</B>
page and a description of the POSIX API in the
<B>pcreposix</B>
page.
<P>
<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT id="1"><A HREF="#lbAB">NAME</A><DD>
<DT id="2"><A HREF="#lbAC">SYNOPSIS</A><DD>
<DT id="3"><A HREF="#lbAD">DESCRIPTION</A><DD>
</DL>
<HR>
This document was created by
<A HREF="/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 00:05:51 GMT, March 31, 2021
</BODY>
</HTML>