/[pcre]/code/trunk/doc/pcrepattern.3
ViewVC logotype

Diff of /code/trunk/doc/pcrepattern.3

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

revision 457 by ph10, Sat Oct 3 16:24:08 2009 UTC revision 459 by ph10, Sun Oct 4 09:21:39 2009 UTC
# Line 1175  pattern matches "abcabc" or "defabc": Line 1175  pattern matches "abcabc" or "defabc":
1175  .sp  .sp
1176    /(?|(abc)|(def))(?1)/    /(?|(abc)|(def))(?1)/
1177  .sp  .sp
1178  An alternative approach to using the "branch reset" feature is to use  If a
1179    .\" HTML <a href="#conditions">
1180    .\" </a>
1181    condition test
1182    .\"
1183    for a subpattern's having matched refers to a non-unique number, the test is
1184    true if any of the subpatterns of that number have matched.
1185    .P
1186    An alternative approach to using this "branch reset" feature is to use
1187  duplicate named subpatterns, as described in the next section.  duplicate named subpatterns, as described in the next section.
1188  .  .
1189  .  .
# Line 1188  if an expression is modified, the number Line 1196  if an expression is modified, the number
1196  difficulty, PCRE supports the naming of subpatterns. This feature was not  difficulty, PCRE supports the naming of subpatterns. This feature was not
1197  added to Perl until release 5.10. Python had the feature earlier, and PCRE  added to Perl until release 5.10. Python had the feature earlier, and PCRE
1198  introduced it at release 4.0, using the Python syntax. PCRE now supports both  introduced it at release 4.0, using the Python syntax. PCRE now supports both
1199  the Perl and the Python syntax.  the Perl and the Python syntax. Perl allows identically numbered subpatterns to
1200    have different names, but PCRE does not.
1201  .P  .P
1202  In PCRE, a subpattern can be named in one of three ways: (?<name>...) or  In PCRE, a subpattern can be named in one of three ways: (?<name>...) or
1203  (?'name'...) as in Perl, or (?P<name>...) as in Python. References to capturing  (?'name'...) as in Perl, or (?P<name>...) as in Python. References to capturing
# Line 1235  subpattern, as described in the previous Line 1244  subpattern, as described in the previous
1244  .P  .P
1245  The convenience function for extracting the data by name returns the substring  The convenience function for extracting the data by name returns the substring
1246  for the first (and in this example, the only) subpattern of that name that  for the first (and in this example, the only) subpattern of that name that
1247  matched. This saves searching to find which numbered subpattern it was. If you  matched. This saves searching to find which numbered subpattern it was.
1248  make a reference to a non-unique named subpattern from elsewhere in the  .P
1249  pattern, the one that corresponds to the lowest number is used. For further  If you make a backreference to a non-unique named subpattern from elsewhere in
1250  details of the interfaces for handling named subpatterns, see the  the pattern, the one that corresponds to the first occurrence of the name is
1251    used. In the absence of duplicate numbers (see the previous section) this is
1252    the one with the lowest number. If you use a named reference in a condition
1253    test (see the
1254    .\"
1255    .\" HTML <a href="#conditions">
1256    .\" </a>
1257    section about conditions
1258    .\"
1259    below), either to check whether a subpattern has matched, or to check for
1260    recursion, all subpatterns with the same name are tested. If the condition is
1261    true for any one of them, the overall condition is true. This is the same
1262    behaviour as testing by number. For further details of the interfaces for
1263    handling named subpatterns, see the
1264  .\" HREF  .\" HREF
1265  \fBpcreapi\fP  \fBpcreapi\fP
1266  .\"  .\"
# Line 1877  Rewriting the above example to use a nam Line 1899  Rewriting the above example to use a nam
1899  .sp  .sp
1900    (?<OPEN> \e( )?    [^()]+    (?(<OPEN>) \e) )    (?<OPEN> \e( )?    [^()]+    (?(<OPEN>) \e) )
1901  .sp  .sp
1902    If the name used in a condition of this kind is a duplicate, the test is
1903    applied to all subpatterns of the same name, and is true if any one of them has
1904    matched.
1905  .  .
1906  .SS "Checking for pattern recursion"  .SS "Checking for pattern recursion"
1907  .rs  .rs
# Line 1890  letter R, for example: Line 1915  letter R, for example:
1915  .sp  .sp
1916  the condition is true if the most recent recursion is into a subpattern whose  the condition is true if the most recent recursion is into a subpattern whose
1917  number or name is given. This condition does not check the entire recursion  number or name is given. This condition does not check the entire recursion
1918  stack.  stack. If the name used in a condition of this kind is a duplicate, the test is
1919    applied to all subpatterns of the same name, and is true if any one of them is
1920    the most recent recursion.
1921  .P  .P
1922  At "top level", all these recursion test conditions are false.  At "top level", all these recursion test conditions are false.
1923  .\" HTML <a href="#recursion">  .\" HTML <a href="#recursion">
1924  .\" </a>  .\" </a>
1925  Recursive patterns  The syntax for recursive patterns
1926  .\"  .\"
1927  are described below.  is described below.
1928  .  .
1929  .SS "Defining subpatterns for use by reference only"  .SS "Defining subpatterns for use by reference only"
1930  .rs  .rs
# Line 2391  Cambridge CB2 3QH, England. Line 2418  Cambridge CB2 3QH, England.
2418  .rs  .rs
2419  .sp  .sp
2420  .nf  .nf
2421  Last updated: 03 October 2009  Last updated: 04 October 2009
2422  Copyright (c) 1997-2009 University of Cambridge.  Copyright (c) 1997-2009 University of Cambridge.
2423  .fi  .fi

Legend:
Removed from v.457  
changed lines
  Added in v.459

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12