/[pcre]/code/trunk/doc/html/pcre.html
ViewVC logotype

Diff of /code/trunk/doc/html/pcre.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1193 by ph10, Sat Jan 21 16:37:17 2012 UTC revision 1194 by ph10, Wed Oct 31 17:42:29 2012 UTC
# Line 14  man page, in case the conversion went wr Line 14  man page, in case the conversion went wr
14  <br>  <br>
15  <ul>  <ul>
16  <li><a name="TOC1" href="#SEC1">INTRODUCTION</a>  <li><a name="TOC1" href="#SEC1">INTRODUCTION</a>
17  <li><a name="TOC2" href="#SEC2">USER DOCUMENTATION</a>  <li><a name="TOC2" href="#SEC2">SECURITY CONSIDERATIONS</a>
18  <li><a name="TOC3" href="#SEC3">AUTHOR</a>  <li><a name="TOC3" href="#SEC3">USER DOCUMENTATION</a>
19  <li><a name="TOC4" href="#SEC4">REVISION</a>  <li><a name="TOC4" href="#SEC4">AUTHOR</a>
20    <li><a name="TOC5" href="#SEC5">REVISION</a>
21  </ul>  </ul>
22  <br><a name="SEC1" href="#TOC1">INTRODUCTION</a><br>  <br><a name="SEC1" href="#TOC1">INTRODUCTION</a><br>
23  <P>  <P>
# Line 36  built. The majority of the work to make Line 37  built. The majority of the work to make
37  Herczeg.  Herczeg.
38  </P>  </P>
39  <P>  <P>
40  The two libraries contain identical sets of functions, except that the names in  Starting with release 8.32 it is possible to compile a third separate PCRE
41  the 16-bit library start with <b>pcre16_</b> instead of <b>pcre_</b>. To avoid  library, which supports 32-bit character strings (including
42  over-complication and reduce the documentation maintenance load, most of the  UTF-32 strings). The build process allows any set of the 8-, 16- and 32-bit
43  documentation describes the 8-bit library, with the differences for the 16-bit  libraries. The work to make this possible was done by Christian Persch.
44  library described separately in the  </P>
45    <P>
46    The three libraries contain identical sets of functions, except that the names
47    in the 16-bit library start with <b>pcre16_</b> instead of <b>pcre_</b>, and the
48    names in the 32-bit library start with <b>pcre32_</b> instead of <b>pcre_</b>. To
49    avoid over-complication and reduce the documentation maintenance load, most of
50    the documentation describes the 8-bit library, with the differences for the
51    16-bit and 32-bit libraries described separately in the
52  <a href="pcre16.html"><b>pcre16</b></a>  <a href="pcre16.html"><b>pcre16</b></a>
53  page. References to functions or structures of the form <i>pcre[16]_xxx</i>  and
54  should be read as meaning "<i>pcre_xxx</i> when using the 8-bit library and  <a href="pcre32.html"><b>pcre32</b></a>
55  <i>pcre16_xxx</i> when using the 16-bit library".  pages. References to functions or structures of the form <i>pcre[16|32]_xxx</i>
56    should be read as meaning "<i>pcre_xxx</i> when using the 8-bit library,
57    <i>pcre16_xxx</i> when using the 16-bit library, or <i>pcre32_xxx</i> when using
58    the 32-bit library".
59  </P>  </P>
60  <P>  <P>
61  The current implementation of PCRE corresponds approximately with Perl 5.12,  The current implementation of PCRE corresponds approximately with Perl 5.12,
62  including support for UTF-8/16 encoded strings and Unicode general category  including support for UTF-8/16/32 encoded strings and Unicode general category
63  properties. However, UTF-8/16 and Unicode support has to be explicitly enabled;  properties. However, UTF-8/16/32 and Unicode support has to be explicitly
64  it is not the default. The Unicode tables correspond to Unicode release 6.0.0.  enabled; it is not the default. The Unicode tables correspond to Unicode
65    release 6.2.0.
66  </P>  </P>
67  <P>  <P>
68  In addition to the Perl-compatible matching function, PCRE contains an  In addition to the Perl-compatible matching function, PCRE contains an
# Line 88  function makes it possible for a client Line 100  function makes it possible for a client
100  available. The features themselves are described in the  available. The features themselves are described in the
101  <a href="pcrebuild.html"><b>pcrebuild</b></a>  <a href="pcrebuild.html"><b>pcrebuild</b></a>
102  page. Documentation about building PCRE for various operating systems can be  page. Documentation about building PCRE for various operating systems can be
103  found in the <b>README</b> and <b>NON-UNIX-USE</b> files in the source  found in the <b>README</b> and <b>NON-AUTOTOOLS_BUILD</b> files in the source
104  distribution.  distribution.
105  </P>  </P>
106  <P>  <P>
107  The libraries contains a number of undocumented internal functions and data  The libraries contains a number of undocumented internal functions and data
108  tables that are used by more than one of the exported external functions, but  tables that are used by more than one of the exported external functions, but
109  which are not intended for use by external callers. Their names all begin with  which are not intended for use by external callers. Their names all begin with
110  "_pcre_" or "_pcre16_", which hopefully will not provoke any name clashes. In  "_pcre_" or "_pcre16_" or "_pcre32_", which hopefully will not provoke any name
111  some environments, it is possible to control which external symbols are  clashes. In some environments, it is possible to control which external symbols
112  exported when a shared library is built, and in these cases the undocumented  are exported when a shared library is built, and in these cases the
113  symbols are not exported.  undocumented symbols are not exported.
114    </P>
115    <br><a name="SEC2" href="#TOC1">SECURITY CONSIDERATIONS</a><br>
116    <P>
117    If you are using PCRE in a non-UTF application that permits users to supply
118    arbitrary patterns for compilation, you should be aware of a feature that
119    allows users to turn on UTF support from within a pattern, provided that PCRE
120    was built with UTF support. For example, an 8-bit pattern that begins with
121    "(*UTF8)" turns on UTF-8 mode. This causes both the pattern and any data
122    against which it is matched to be checked for UTF-8 validity. If the data
123    string is very long, such a check might use sufficiently many resources as to
124    cause your application to lose performance.
125    </P>
126    <P>
127    The best way of guarding against this possibility is to use the
128    <b>pcre_fullinfo()</b> function to check the compiled pattern's options for UTF.
129    </P>
130    <P>
131    If your application is one that supports UTF, be aware that validity checking
132    can take time. If the same data string is to be matched many times, you can use
133    the PCRE_NO_UTF[8|16|32]_CHECK option for the second and subsequent matches to
134    save redundant checks.
135    </P>
136    <P>
137    Another way that performance can be hit is by running a pattern that has a very
138    large search tree against a string that will never match. Nested unlimited
139    repeats in a pattern are a common example. PCRE provides some protection
140    against this: see the PCRE_EXTRA_MATCH_LIMIT feature in the
141    <a href="pcreapi.html"><b>pcreapi</b></a>
142    page.
143  </P>  </P>
144  <br><a name="SEC2" href="#TOC1">USER DOCUMENTATION</a><br>  <br><a name="SEC3" href="#TOC1">USER DOCUMENTATION</a><br>
145  <P>  <P>
146  The user documentation for PCRE comprises a number of different sections. In  The user documentation for PCRE comprises a number of different sections. In
147  the "man" format, each of these is a separate "man page". In the HTML format,  the "man" format, each of these is a separate "man page". In the HTML format,
# Line 110  of searching. The sections are as follow Line 151  of searching. The sections are as follow
151  <pre>  <pre>
152    pcre              this document    pcre              this document
153    pcre16            details of the 16-bit library    pcre16            details of the 16-bit library
154      pcre32            details of the 32-bit library
155    pcre-config       show PCRE installation configuration information    pcre-config       show PCRE installation configuration information
156    pcreapi           details of PCRE's native C API    pcreapi           details of PCRE's native C API
157    pcrebuild         options for building PCRE    pcrebuild         options for building PCRE
# Line 130  of searching. The sections are as follow Line 172  of searching. The sections are as follow
172    pcrestack         discussion of stack usage    pcrestack         discussion of stack usage
173    pcresyntax        quick syntax reference    pcresyntax        quick syntax reference
174    pcretest          description of the <b>pcretest</b> testing command    pcretest          description of the <b>pcretest</b> testing command
175    pcreunicode       discussion of Unicode and UTF-8/16 support    pcreunicode       discussion of Unicode and UTF-8/16/32 support
176  </pre>  </pre>
177  In addition, in the "man" and HTML formats, there is a short page for each  In addition, in the "man" and HTML formats, there is a short page for each
178  8-bit C library function, listing its arguments and results.  C library function, listing its arguments and results.
179  </P>  </P>
180  <br><a name="SEC3" href="#TOC1">AUTHOR</a><br>  <br><a name="SEC4" href="#TOC1">AUTHOR</a><br>
181  <P>  <P>
182  Philip Hazel  Philip Hazel
183  <br>  <br>
# Line 149  Putting an actual email address here see Line 191  Putting an actual email address here see
191  taken it away. If you want to email me, use my two initials, followed by the  taken it away. If you want to email me, use my two initials, followed by the
192  two digits 10, at the domain cam.ac.uk.  two digits 10, at the domain cam.ac.uk.
193  </P>  </P>
194  <br><a name="SEC4" href="#TOC1">REVISION</a><br>  <br><a name="SEC5" href="#TOC1">REVISION</a><br>
195  <P>  <P>
196  Last updated: 10 January 2012  Last updated: 30 October 2012
197  <br>  <br>
198  Copyright &copy; 1997-2012 University of Cambridge.  Copyright &copy; 1997-2012 University of Cambridge.
199  <br>  <br>

Legend:
Removed from v.1193  
changed lines
  Added in v.1194

  ViewVC Help
Powered by ViewVC 1.1.5