# Diff of /code/trunk/doc/pcrecompat.3

revision 715 by ph10, Sun Aug 28 15:23:03 2011 UTC revision 716 by ph10, Tue Oct 4 16:38:05 2011 UTC
# Line 79  the Line 79  the
79  .\"  .\"
80  documentation for details.  documentation for details.
81  .P  .P
82  10. Subpatterns that are called recursively or as "subroutines" are always  10. Subpatterns that are called as subroutines (whether or not recursively) are
83  treated as atomic groups in PCRE. This is like Python, but unlike Perl. There  always treated as atomic groups in PCRE. This is like Python, but unlike Perl.
84  is a discussion of an example that explains this in more detail in the  There is a discussion of an example that explains this in more detail in the
85  .\" HTML <a href="pcrepattern.html#recursiondifference">  .\" HTML <a href="pcrepattern.html#recursiondifference">
86  .\" </a>  .\" </a>
87  section on recursion differences from Perl  section on recursion differences from Perl
# Line 92  in the Line 92  in the
92  .\"  .\"
93  page.  page.
94  .P  .P
95  11. There are some differences that are concerned with the settings of captured  11. If (*THEN) is present in a group that is called as a subroutine, its action
96    is limited to that group, even if the group does not contain any | characters.
97    .P
98    12. There are some differences that are concerned with the settings of captured
99  strings when part of a pattern is repeated. For example, matching "aba" against  strings when part of a pattern is repeated. For example, matching "aba" against
100  the pattern /^(a(b)?)+\$/ in Perl leaves \$2 unset, but in PCRE it is set to "b".  the pattern /^(a(b)?)+\$/ in Perl leaves \$2 unset, but in PCRE it is set to "b".
101  .P  .P
102  12. PCRE's handling of duplicate subpattern numbers and duplicate subpattern  13. PCRE's handling of duplicate subpattern numbers and duplicate subpattern
103  names is not as general as Perl's. This is a consequence of the fact the PCRE  names is not as general as Perl's. This is a consequence of the fact the PCRE
104  works internally just with numbers, using an external table to translate  works internally just with numbers, using an external table to translate
105  between numbers and names. In particular, a pattern such as (?|(?<a>A)|(?<b)B),  between numbers and names. In particular, a pattern such as (?|(?<a>A)|(?<b)B),
# Line 106  would not be possible to distinguish whi Line 109  would not be possible to distinguish whi
109  names map to capturing subpattern number 1. To avoid this confusing situation,  names map to capturing subpattern number 1. To avoid this confusing situation,
110  an error is given at compile time.  an error is given at compile time.
111  .P  .P
112  13. Perl recognizes comments in some places that PCRE does not, for example,  14. Perl recognizes comments in some places that PCRE does not, for example,
113  between the ( and ? at the start of a subpattern. If the /x modifier is set,  between the ( and ? at the start of a subpattern. If the /x modifier is set,
114  Perl allows whitespace between ( and ? but PCRE never does, even if the  Perl allows whitespace between ( and ? but PCRE never does, even if the
115  PCRE_EXTENDED option is set.  PCRE_EXTENDED option is set.
116  .P  .P
117  14. PCRE provides some extensions to the Perl regular expression facilities.  15. PCRE provides some extensions to the Perl regular expression facilities.
118  Perl 5.10 includes new features that are not in earlier versions of Perl, some  Perl 5.10 includes new features that are not in earlier versions of Perl, some
119  of which (such as named parentheses) have been in PCRE for some time. This list  of which (such as named parentheses) have been in PCRE for some time. This list
120  is with respect to Perl 5.10:  is with respect to Perl 5.10:
# Line 145  by the PCRE_BSR_ANYCRLF option. Line 148  by the PCRE_BSR_ANYCRLF option.
148  (i) The partial matching facility is PCRE-specific.  (i) The partial matching facility is PCRE-specific.
149  .sp  .sp
150  (j) Patterns compiled by PCRE can be saved and re-used at a later time, even on  (j) Patterns compiled by PCRE can be saved and re-used at a later time, even on
151  different hosts that have the other endianness.  different hosts that have the other endianness. However, this does not apply to
152    optimized data created by the just-in-time compiler.
153  .sp  .sp
154  (k) The alternative matching function (\fBpcre_dfa_exec()\fP) matches in a  (k) The alternative matching function (\fBpcre_dfa_exec()\fP) matches in a
155  different way and is not Perl-compatible.  different way and is not Perl-compatible.
# Line 168  Cambridge CB2 3QH, England. Line 172  Cambridge CB2 3QH, England.
172  .rs  .rs
173  .sp  .sp
174  .nf  .nf
175  Last updated: 24 August 2011  Last updated: 04 October 2011
176  Copyright (c) 1997-2011 University of Cambridge.  Copyright (c) 1997-2011 University of Cambridge.
177  .fi  .fi

Legend:
 Removed from v.715 changed lines Added in v.716