17 |
<li><a name="TOC2" href="#SEC2">PCRE NATIVE API STRING EXTRACTION FUNCTIONS</a> |
<li><a name="TOC2" href="#SEC2">PCRE NATIVE API STRING EXTRACTION FUNCTIONS</a> |
18 |
<li><a name="TOC3" href="#SEC3">PCRE NATIVE API AUXILIARY FUNCTIONS</a> |
<li><a name="TOC3" href="#SEC3">PCRE NATIVE API AUXILIARY FUNCTIONS</a> |
19 |
<li><a name="TOC4" href="#SEC4">PCRE NATIVE API INDIRECTED FUNCTIONS</a> |
<li><a name="TOC4" href="#SEC4">PCRE NATIVE API INDIRECTED FUNCTIONS</a> |
20 |
<li><a name="TOC5" href="#SEC5">PCRE 8-BIT, 16-BIT AND 32-BIT LIBRARIES</a> |
<li><a name="TOC5" href="#SEC5">PCRE 8-BIT, 16-BIT, AND 32-BIT LIBRARIES</a> |
21 |
<li><a name="TOC6" href="#SEC6">PCRE API OVERVIEW</a> |
<li><a name="TOC6" href="#SEC6">PCRE API OVERVIEW</a> |
22 |
<li><a name="TOC7" href="#SEC7">NEWLINES</a> |
<li><a name="TOC7" href="#SEC7">NEWLINES</a> |
23 |
<li><a name="TOC8" href="#SEC8">MULTITHREADING</a> |
<li><a name="TOC8" href="#SEC8">MULTITHREADING</a> |
167 |
<P> |
<P> |
168 |
<b>int (*pcre_callout)(pcre_callout_block *);</b> |
<b>int (*pcre_callout)(pcre_callout_block *);</b> |
169 |
</P> |
</P> |
170 |
<br><a name="SEC5" href="#TOC1">PCRE 8-BIT, 16-BIT AND 32-BIT LIBRARIES</a><br> |
<br><a name="SEC5" href="#TOC1">PCRE 8-BIT, 16-BIT, AND 32-BIT LIBRARIES</a><br> |
171 |
<P> |
<P> |
172 |
From release 8.30, PCRE can be compiled as a library for handling 16-bit |
As well as support for 8-bit character strings, PCRE also supports 16-bit |
173 |
character strings as well as, or instead of, the original library that handles |
strings (from release 8.30) and 32-bit strings (from release 8.32), by means of |
174 |
8-bit character strings. From release 8.32, PCRE can also be compiled as a |
two additional libraries. They can be built as well as, or instead of, the |
175 |
library for handling 32-bit character strings. To avoid too much complication, |
8-bit library. To avoid too much complication, this document describes the |
176 |
this document describes the 8-bit versions of the functions, with only |
8-bit versions of the functions, with only occasional references to the 16-bit |
177 |
occasional references to the 16-bit and 32-bit libraries. |
and 32-bit libraries. |
178 |
</P> |
</P> |
179 |
<P> |
<P> |
180 |
The 16-bit and 32-bit functions operate in the same way as their 8-bit |
The 16-bit and 32-bit functions operate in the same way as their 8-bit |
187 |
</P> |
</P> |
188 |
<P> |
<P> |
189 |
References to bytes and UTF-8 in this document should be read as references to |
References to bytes and UTF-8 in this document should be read as references to |
190 |
16-bit data quantities and UTF-16 when using the 16-bit library, or 32-bit data |
16-bit data quantities and UTF-16 when using the 16-bit library, or 32-bit data |
191 |
quantities and UTF-32 when using the 32-bit library, unless specified |
quantities and UTF-32 when using the 32-bit library, unless specified |
192 |
otherwise. More details of the specific differences for the 16-bit and 32-bit |
otherwise. More details of the specific differences for the 16-bit and 32-bit |
193 |
libraries are given in the |
libraries are given in the |
450 |
PCRE_CONFIG_NEWLINE |
PCRE_CONFIG_NEWLINE |
451 |
</pre> |
</pre> |
452 |
The output is an integer whose value specifies the default character sequence |
The output is an integer whose value specifies the default character sequence |
453 |
that is recognized as meaning "newline". The values that are supported in |
that is recognized as meaning "newline". The values that are supported in |
454 |
ASCII/Unicode environments are: 10 for LF, 13 for CR, 3338 for CRLF, -2 for |
ASCII/Unicode environments are: 10 for LF, 13 for CR, 3338 for CRLF, -2 for |
455 |
ANYCRLF, and -1 for ANY. In EBCDIC environments, CR, ANYCRLF, and ANY yield the |
ANYCRLF, and -1 for ANY. In EBCDIC environments, CR, ANYCRLF, and ANY yield the |
456 |
same values. However, the value for LF is normally 21, though some EBCDIC |
same values. However, the value for LF is normally 21, though some EBCDIC |
768 |
PCRE_NEWLINE_CRLF specifies that a newline is indicated by the two-character |
PCRE_NEWLINE_CRLF specifies that a newline is indicated by the two-character |
769 |
CRLF sequence. Setting PCRE_NEWLINE_ANYCRLF specifies that any of the three |
CRLF sequence. Setting PCRE_NEWLINE_ANYCRLF specifies that any of the three |
770 |
preceding sequences should be recognized. Setting PCRE_NEWLINE_ANY specifies |
preceding sequences should be recognized. Setting PCRE_NEWLINE_ANY specifies |
771 |
that any Unicode newline sequence should be recognized. |
that any Unicode newline sequence should be recognized. |
772 |
</P> |
</P> |
773 |
<P> |
<P> |
774 |
In an ASCII/Unicode environment, the Unicode newline sequences are the three |
In an ASCII/Unicode environment, the Unicode newline sequences are the three |
780 |
<P> |
<P> |
781 |
When PCRE is compiled to run in an EBCDIC (mainframe) environment, the code for |
When PCRE is compiled to run in an EBCDIC (mainframe) environment, the code for |
782 |
CR is 0x0d, the same as ASCII. However, the character code for LF is normally |
CR is 0x0d, the same as ASCII. However, the character code for LF is normally |
783 |
0x15, though in some EBCDIC environments 0x25 is used. Whichever of these is |
0x15, though in some EBCDIC environments 0x25 is used. Whichever of these is |
784 |
not LF is made to correspond to Unicode's NEL character. EBCDIC codes are all |
not LF is made to correspond to Unicode's NEL character. EBCDIC codes are all |
785 |
less than 256. For more details, see the |
less than 256. For more details, see the |
786 |
<a href="pcrebuild.html"><b>pcrebuild</b></a> |
<a href="pcrebuild.html"><b>pcrebuild</b></a> |
787 |
documentation. |
documentation. |
864 |
When it is set, the effect of passing an invalid UTF-8 string as a pattern is |
When it is set, the effect of passing an invalid UTF-8 string as a pattern is |
865 |
undefined. It may cause your program to crash. Note that this option can also |
undefined. It may cause your program to crash. Note that this option can also |
866 |
be passed to <b>pcre_exec()</b> and <b>pcre_dfa_exec()</b>, to suppress the |
be passed to <b>pcre_exec()</b> and <b>pcre_dfa_exec()</b>, to suppress the |
867 |
validity checking of subject strings only. If the same string is being matched |
validity checking of subject strings only. If the same string is being matched |
868 |
many times, the option can be safely set for the second and subsequent |
many times, the option can be safely set for the second and subsequent |
869 |
matchings to improve performance. |
matchings to improve performance. |
870 |
</P> |
</P> |
871 |
<br><a name="SEC12" href="#TOC1">COMPILATION ERROR CODES</a><br> |
<br><a name="SEC12" href="#TOC1">COMPILATION ERROR CODES</a><br> |
988 |
If studying the pattern does not produce any useful information, |
If studying the pattern does not produce any useful information, |
989 |
<b>pcre_study()</b> returns NULL by default. In that circumstance, if the |
<b>pcre_study()</b> returns NULL by default. In that circumstance, if the |
990 |
calling program wants to pass any of the other fields to <b>pcre_exec()</b> or |
calling program wants to pass any of the other fields to <b>pcre_exec()</b> or |
991 |
<b>pcre_dfa_exec()</b>, it must set up its own <b>pcre_extra</b> block. However, |
<b>pcre_dfa_exec()</b>, it must set up its own <b>pcre_extra</b> block. However, |
992 |
if <b>pcre_study()</b> is called with the PCRE_STUDY_EXTRA_NEEDED option, it |
if <b>pcre_study()</b> is called with the PCRE_STUDY_EXTRA_NEEDED option, it |
993 |
returns a <b>pcre_extra</b> block even if studying did not find any additional |
returns a <b>pcre_extra</b> block even if studying did not find any additional |
994 |
information. It may still return NULL, however, if an error occurs in |
information. It may still return NULL, however, if an error occurs in |
2238 |
</pre> |
</pre> |
2239 |
This error is returned when a pattern that was successfully studied using a JIT |
This error is returned when a pattern that was successfully studied using a JIT |
2240 |
compile option is being matched, but the matching mode (partial or complete |
compile option is being matched, but the matching mode (partial or complete |
2241 |
match) does not correspond to any JIT compilation mode. When the JIT fast path |
match) does not correspond to any JIT compilation mode. When the JIT fast path |
2242 |
function is used, this error may be also given for invalid options. See the |
function is used, this error may be also given for invalid options. See the |
2243 |
<a href="pcrejit.html"><b>pcrejit</b></a> |
<a href="pcrejit.html"><b>pcrejit</b></a> |
2244 |
documentation for more details. |
documentation for more details. |
2245 |
<pre> |
<pre> |
2246 |
PCRE_ERROR_BADLENGTH (-32) |
PCRE_ERROR_BADLENGTH (-32) |
2247 |
</pre> |
</pre> |
2248 |
This error is given if <b>pcre_exec()</b> is called with a negative value for |
This error is given if <b>pcre_exec()</b> is called with a negative value for |
2249 |
the <i>length</i> argument. |
the <i>length</i> argument. |
2250 |
</P> |
</P> |
2251 |
<P> |
<P> |
2252 |
Error numbers -16 to -20, -22, and 30 are not used by <b>pcre_exec()</b>. |
Error numbers -16 to -20, -22, and 30 are not used by <b>pcre_exec()</b>. |
2256 |
</b><br> |
</b><br> |
2257 |
<P> |
<P> |
2258 |
This section applies only to the 8-bit library. The corresponding information |
This section applies only to the 8-bit library. The corresponding information |
2259 |
for the 16-bit library is given in the |
for the 16-bit and 32-bit libraries is given in the |
2260 |
<a href="pcre16.html"><b>pcre16</b></a> |
<a href="pcre16.html"><b>pcre16</b></a> |
2261 |
page. The corresponding information for the 32-bit library is given in the |
and |
2262 |
<a href="pcre32.html"><b>pcre32</b></a> |
<a href="pcre32.html"><b>pcre32</b></a> |
2263 |
page. |
pages. |
2264 |
</P> |
</P> |
2265 |
<P> |
<P> |
2266 |
When <b>pcre_exec()</b> returns either PCRE_ERROR_BADUTF8 or |
When <b>pcre_exec()</b> returns either PCRE_ERROR_BADUTF8 or |
2777 |
</P> |
</P> |
2778 |
<br><a name="SEC26" href="#TOC1">REVISION</a><br> |
<br><a name="SEC26" href="#TOC1">REVISION</a><br> |
2779 |
<P> |
<P> |
2780 |
Last updated: 31 October 2012 |
Last updated: 08 November 2012 |
2781 |
<br> |
<br> |
2782 |
Copyright © 1997-2012 University of Cambridge. |
Copyright © 1997-2012 University of Cambridge. |
2783 |
<br> |
<br> |