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

141 lines
11 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>Man page of PCRE2_PATTERN_INFO</TITLE>
</HEAD><BODY>
<H1>PCRE2_PATTERN_INFO</H1>
Section: C Library Functions (3)<BR>Updated: 14 February 2019<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>
PCRE2 - Perl-compatible regular expressions (revised API)
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
<P>
<B>#include &lt;<A HREF="file:///usr/include/pcre2.h">pcre2.h</A>&gt;</B>
<P>
<PRE>
<B>int pcre2_pattern_info(const pcre2_code *</B><I>code</I>, uint32_t <I>what</I>,
<B> void *</B><I>where</I>);
</PRE>
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>
<P>
This function returns information about a compiled pattern. Its arguments are:
<P>
<BR>&nbsp;&nbsp;<I>code</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pointer&nbsp;to&nbsp;a&nbsp;compiled&nbsp;regular&nbsp;expression&nbsp;pattern
<BR>&nbsp;&nbsp;<I>what</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;What&nbsp;information&nbsp;is&nbsp;required
<BR>&nbsp;&nbsp;<I>where</I>&nbsp;&nbsp;&nbsp;&nbsp;Where&nbsp;to&nbsp;put&nbsp;the&nbsp;information
<P>
The recognized values for the <I>what</I> argument, and the information they
request are as follows:
<P>
<BR>&nbsp;&nbsp;PCRE2_INFO_ALLOPTIONS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Final&nbsp;options&nbsp;after&nbsp;compiling
<BR>&nbsp;&nbsp;PCRE2_INFO_ARGOPTIONS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Options&nbsp;passed&nbsp;to&nbsp;<B>pcre2_compile()</B>
<BR>&nbsp;&nbsp;PCRE2_INFO_BACKREFMAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Number&nbsp;of&nbsp;highest&nbsp;backreference
<BR>&nbsp;&nbsp;PCRE2_INFO_BSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;What&nbsp;\R&nbsp;matches:
<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;&nbsp;&nbsp;&nbsp;PCRE2_BSR_UNICODE:&nbsp;Unicode&nbsp;line&nbsp;endings
<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;&nbsp;&nbsp;&nbsp;PCRE2_BSR_ANYCRLF:&nbsp;CR,&nbsp;LF,&nbsp;or&nbsp;CRLF&nbsp;only
<BR>&nbsp;&nbsp;PCRE2_INFO_CAPTURECOUNT&nbsp;&nbsp;&nbsp;&nbsp;Number&nbsp;of&nbsp;capturing&nbsp;subpatterns
<BR>&nbsp;&nbsp;PCRE2_INFO_DEPTHLIMIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Backtracking&nbsp;depth&nbsp;limit&nbsp;if&nbsp;set,
<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;&nbsp;&nbsp;&nbsp;otherwise&nbsp;PCRE2_ERROR_UNSET
<BR>&nbsp;&nbsp;PCRE2_INFO_EXTRAOPTIONS&nbsp;&nbsp;&nbsp;&nbsp;Extra&nbsp;options&nbsp;that&nbsp;were&nbsp;passed&nbsp;in&nbsp;the
<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;&nbsp;&nbsp;&nbsp;compile&nbsp;context
<BR>&nbsp;&nbsp;PCRE2_INFO_FIRSTBITMAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bitmap&nbsp;of&nbsp;first&nbsp;code&nbsp;units,&nbsp;or&nbsp;NULL
<BR>&nbsp;&nbsp;PCRE2_INFO_FIRSTCODETYPE&nbsp;&nbsp;&nbsp;Type&nbsp;of&nbsp;start-of-match&nbsp;information
<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;&nbsp;&nbsp;&nbsp;0&nbsp;nothing&nbsp;set
<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;&nbsp;&nbsp;&nbsp;1&nbsp;first&nbsp;code&nbsp;unit&nbsp;is&nbsp;set
<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;&nbsp;&nbsp;&nbsp;2&nbsp;start&nbsp;of&nbsp;string&nbsp;or&nbsp;after&nbsp;newline
<BR>&nbsp;&nbsp;PCRE2_INFO_FIRSTCODEUNIT&nbsp;&nbsp;&nbsp;First&nbsp;code&nbsp;unit&nbsp;when&nbsp;type&nbsp;is&nbsp;1
<BR>&nbsp;&nbsp;PCRE2_INFO_FRAMESIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size&nbsp;of&nbsp;backtracking&nbsp;frame
<BR>&nbsp;&nbsp;PCRE2_INFO_HASBACKSLASHC&nbsp;&nbsp;&nbsp;Return&nbsp;1&nbsp;if&nbsp;pattern&nbsp;contains&nbsp;\C
<BR>&nbsp;&nbsp;PCRE2_INFO_HASCRORLF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return&nbsp;1&nbsp;if&nbsp;explicit&nbsp;CR&nbsp;or&nbsp;LF&nbsp;matches
<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;&nbsp;&nbsp;&nbsp;exist&nbsp;in&nbsp;the&nbsp;pattern
<BR>&nbsp;&nbsp;PCRE2_INFO_HEAPLIMIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Heap&nbsp;memory&nbsp;limit&nbsp;if&nbsp;set,
<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;&nbsp;&nbsp;&nbsp;otherwise&nbsp;PCRE2_ERROR_UNSET
<BR>&nbsp;&nbsp;PCRE2_INFO_JCHANGED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return&nbsp;1&nbsp;if&nbsp;(?J)&nbsp;or&nbsp;(?-J)&nbsp;was&nbsp;used
<BR>&nbsp;&nbsp;PCRE2_INFO_JITSIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size&nbsp;of&nbsp;JIT&nbsp;compiled&nbsp;code,&nbsp;or&nbsp;0
<BR>&nbsp;&nbsp;PCRE2_INFO_LASTCODETYPE&nbsp;&nbsp;&nbsp;&nbsp;Type&nbsp;of&nbsp;must-be-present&nbsp;information
<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;&nbsp;&nbsp;&nbsp;0&nbsp;nothing&nbsp;set
<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;&nbsp;&nbsp;&nbsp;1&nbsp;code&nbsp;unit&nbsp;is&nbsp;set
<BR>&nbsp;&nbsp;PCRE2_INFO_LASTCODEUNIT&nbsp;&nbsp;&nbsp;&nbsp;Last&nbsp;code&nbsp;unit&nbsp;when&nbsp;type&nbsp;is&nbsp;1
<BR>&nbsp;&nbsp;PCRE2_INFO_MATCHEMPTY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;if&nbsp;the&nbsp;pattern&nbsp;can&nbsp;match&nbsp;an
<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;&nbsp;&nbsp;&nbsp;empty&nbsp;string,&nbsp;0&nbsp;otherwise
<BR>&nbsp;&nbsp;PCRE2_INFO_MATCHLIMIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Match&nbsp;limit&nbsp;if&nbsp;set,
<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;&nbsp;&nbsp;&nbsp;otherwise&nbsp;PCRE2_ERROR_UNSET
<BR>&nbsp;&nbsp;PCRE2_INFO_MAXLOOKBEHIND&nbsp;&nbsp;&nbsp;Length&nbsp;(in&nbsp;characters)&nbsp;of&nbsp;the&nbsp;longest
<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;&nbsp;&nbsp;&nbsp;lookbehind&nbsp;assertion
<BR>&nbsp;&nbsp;PCRE2_INFO_MINLENGTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lower&nbsp;bound&nbsp;length&nbsp;of&nbsp;matching&nbsp;strings
<BR>&nbsp;&nbsp;PCRE2_INFO_NAMECOUNT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Number&nbsp;of&nbsp;named&nbsp;subpatterns
<BR>&nbsp;&nbsp;PCRE2_INFO_NAMEENTRYSIZE&nbsp;&nbsp;&nbsp;Size&nbsp;of&nbsp;name&nbsp;table&nbsp;entries
<BR>&nbsp;&nbsp;PCRE2_INFO_NAMETABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pointer&nbsp;to&nbsp;name&nbsp;table
<BR>&nbsp;&nbsp;PCRE2_CONFIG_NEWLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Code&nbsp;for&nbsp;the&nbsp;newline&nbsp;sequence:
<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;&nbsp;&nbsp;&nbsp;PCRE2_NEWLINE_CR
<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;&nbsp;&nbsp;&nbsp;PCRE2_NEWLINE_LF
<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;&nbsp;&nbsp;&nbsp;PCRE2_NEWLINE_CRLF
<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;&nbsp;&nbsp;&nbsp;PCRE2_NEWLINE_ANY
<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;&nbsp;&nbsp;&nbsp;PCRE2_NEWLINE_ANYCRLF
<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;&nbsp;&nbsp;&nbsp;PCRE2_NEWLINE_NUL
<BR>&nbsp;&nbsp;PCRE2_INFO_RECURSIONLIMIT&nbsp;&nbsp;Obsolete&nbsp;synonym&nbsp;for&nbsp;PCRE2_INFO_DEPTHLIMIT
<BR>&nbsp;&nbsp;PCRE2_INFO_SIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size&nbsp;of&nbsp;compiled&nbsp;pattern
<P>
If <I>where</I> is NULL, the function returns the amount of memory needed for
the requested information, in bytes. Otherwise, the <I>where</I> argument must
point to an unsigned 32-bit integer (uint32_t variable), except for the
following <I>what</I> values, when it must point to a variable of the type
shown:
<P>
<BR>&nbsp;&nbsp;PCRE2_INFO_FIRSTBITMAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;uint8_t&nbsp;*
<BR>&nbsp;&nbsp;PCRE2_INFO_JITSIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size_t
<BR>&nbsp;&nbsp;PCRE2_INFO_NAMETABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCRE2_SPTR
<BR>&nbsp;&nbsp;PCRE2_INFO_SIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size_t
<P>
The yield of the function is zero on success or:
<P>
<BR>&nbsp;&nbsp;PCRE2_ERROR_NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;argument&nbsp;<I>code</I>&nbsp;is&nbsp;NULL
<BR>&nbsp;&nbsp;PCRE2_ERROR_BADMAGIC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;&quot;magic&nbsp;number&quot;&nbsp;was&nbsp;not&nbsp;found
<BR>&nbsp;&nbsp;PCRE2_ERROR_BADOPTION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;value&nbsp;of&nbsp;<I>what</I>&nbsp;is&nbsp;invalid
<BR>&nbsp;&nbsp;PCRE2_ERROR_BADMODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;pattern&nbsp;was&nbsp;compiled&nbsp;in&nbsp;the&nbsp;wrong&nbsp;mode
<BR>&nbsp;&nbsp;PCRE2_ERROR_UNSET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;requested&nbsp;information&nbsp;is&nbsp;not&nbsp;set
<P>
There is a complete description of the PCRE2 native API in the
<B>pcre2api</B>
page and a description of the POSIX API in the
<B>pcre2posix</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:50 GMT, March 31, 2021
</BODY>
</HTML>