--- code/trunk/doc/pcrecompat.3 2011/08/28 15:23:03 678 +++ code/trunk/doc/pcrecompat.3 2011/10/04 16:38:05 716 @@ -79,9 +79,9 @@ .\" documentation for details. .P -10. Subpatterns that are called recursively or as "subroutines" are always -treated as atomic groups in PCRE. This is like Python, but unlike Perl. There -is a discussion of an example that explains this in more detail in the +10. Subpatterns that are called as subroutines (whether or not recursively) are +always treated as atomic groups in PCRE. This is like Python, but unlike Perl. +There is a discussion of an example that explains this in more detail in the .\" HTML .\" section on recursion differences from Perl @@ -92,11 +92,14 @@ .\" page. .P -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 +is limited to that group, even if the group does not contain any | characters. +.P +12. There are some differences that are concerned with the settings of captured strings when part of a pattern is repeated. For example, matching "aba" against the pattern /^(a(b)?)+$/ in Perl leaves $2 unset, but in PCRE it is set to "b". .P -12. PCRE's handling of duplicate subpattern numbers and duplicate subpattern +13. PCRE's handling of duplicate subpattern numbers and duplicate subpattern names is not as general as Perl's. This is a consequence of the fact the PCRE works internally just with numbers, using an external table to translate between numbers and names. In particular, a pattern such as (?|(?A)|(?