Diff for /embedaddon/pcre/doc/html/pcrematching.html between versions 1.1 and 1.1.1.2

version 1.1, 2012/02/21 23:05:52 version 1.1.1.2, 2012/02/21 23:50:25
Line 26  man page, in case the conversion went wrong. Line 26  man page, in case the conversion went wrong.
 <P>  <P>
 This document describes the two different algorithms that are available in PCRE  This document describes the two different algorithms that are available in PCRE
 for matching a compiled regular expression against a given subject string. The  for matching a compiled regular expression against a given subject string. The
"standard" algorithm is the one provided by the <b>pcre_exec()</b> function."standard" algorithm is the one provided by the <b>pcre_exec()</b> and
This works in the same was as Perl's matching function, and provides a<b>pcre16_exec()</b> functions. These work in the same was as Perl's matching
Perl-compatible matching operation.function, and provide a Perl-compatible matching operation. The just-in-time
 (JIT) optimization that is described in the
 <a href="pcrejit.html"><b>pcrejit</b></a>
 documentation is compatible with these functions.
 </P>  </P>
 <P>  <P>
An alternative algorithm is provided by the <b>pcre_dfa_exec()</b> function;An alternative algorithm is provided by the <b>pcre_dfa_exec()</b> and
this operates in a different way, and is not Perl-compatible. It has advantages<b>pcre16_dfa_exec()</b> functions; they operate in a different way, and are not
and disadvantages compared with the standard algorithm, and these are describedPerl-compatible. This alternative has advantages and disadvantages compared
below.with the standard algorithm, and these are described below.
 </P>  </P>
 <P>  <P>
 When there is only one possible way in which a given subject string can match a  When there is only one possible way in which a given subject string can match a
Line 163  and not on others), is not supported. It causes an err Line 166  and not on others), is not supported. It causes an err
 always 1, and the value of the <i>capture_last</i> field is always -1.  always 1, and the value of the <i>capture_last</i> field is always -1.
 </P>  </P>
 <P>  <P>
7. The \C escape sequence, which (in the standard algorithm) matches a single7. The \C escape sequence, which (in the standard algorithm) always matches a
byte, even in UTF-8 mode, is not supported in UTF-8 mode, because thesingle data unit, even in UTF-8 or UTF-16 modes, is not supported in these
alternative algorithm moves through the subject string one character at a time,modes, because the alternative algorithm moves through the subject string one
for all active paths through the tree.character (not data unit) at a time, for all active paths through the tree.
 </P>  </P>
 <P>  <P>
 8. Except for (*FAIL), the backtracking control verbs such as (*PRUNE) are not  8. Except for (*FAIL), the backtracking control verbs such as (*PRUNE) are not
Line 184  callouts. Line 187  callouts.
 </P>  </P>
 <P>  <P>
 2. Because the alternative algorithm scans the subject string just once, and  2. Because the alternative algorithm scans the subject string just once, and
never needs to backtrack, it is possible to pass very long subject strings tonever needs to backtrack (except for lookbehinds), it is possible to pass very
the matching function in several pieces, checking for partial matching eachlong subject strings to the matching function in several pieces, checking for
time. Although it is possible to do multi-segment matching using the standardpartial matching each time. Although it is possible to do multi-segment
algorithm (<b>pcre_exec()</b>), by retaining partially matched substrings, it ismatching using the standard algorithm by retaining partially matched
more complicated. Thesubstrings, it is more complicated. The
 <a href="pcrepartial.html"><b>pcrepartial</b></a>  <a href="pcrepartial.html"><b>pcrepartial</b></a>
 documentation gives details of partial matching and discusses multi-segment  documentation gives details of partial matching and discusses multi-segment
 matching.  matching.
Line 220  Cambridge CB2 3QH, England. Line 223  Cambridge CB2 3QH, England.
 </P>  </P>
 <br><a name="SEC8" href="#TOC1">REVISION</a><br>  <br><a name="SEC8" href="#TOC1">REVISION</a><br>
 <P>  <P>
Last updated: 19 November 2011Last updated: 08 January 2012
 <br>  <br>
Copyright &copy; 1997-2010 University of Cambridge.Copyright &copy; 1997-2012 University of Cambridge.
 <br>  <br>
 <p>  <p>
 Return to the <a href="index.html">PCRE index page</a>.  Return to the <a href="index.html">PCRE index page</a>.

Removed from v.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>