Mention there are places /x modifier is ineffective
Karl Williamson [Thu, 25 Feb 2010 20:41:10 +0000 (13:41 -0700)]
pod/perlfaq6.pod
pod/perlre.pod

index 4074526..40965d0 100644 (file)
@@ -33,9 +33,9 @@ comments.
 =item Comments Inside the Regex
 
 The C</x> modifier causes whitespace to be ignored in a regex pattern
-(except in a character class), and also allows you to use normal
-comments there, too.  As you can imagine, whitespace and comments help
-a lot.
+(except in a character class and a few other places), and also allows you to
+use normal comments there, too.  As you can imagine, whitespace and comments
+help a lot.
 
 C</x> lets you turn this:
 
index f98fba7..37cb6fc 100644 (file)
@@ -82,20 +82,24 @@ modifiers may also be embedded within the regular expression itself using
 the C<(?...)> construct.  See below.
 
 The C</x> modifier itself needs a little more explanation.  It tells
-the regular expression parser to ignore whitespace that is neither
+the regular expression parser to ignore most whitespace that is neither
 backslashed nor within a character class.  You can use this to break up
 your regular expression into (slightly) more readable parts.  The C<#>
 character is also treated as a metacharacter introducing a comment,
 just as in ordinary Perl code.  This also means that if you want real
 whitespace or C<#> characters in the pattern (outside a character
 class, where they are unaffected by C</x>), then you'll either have to
-escape them (using backslashes or C<\Q...\E>) or encode them using octal
-or hex escapes.  Taken together, these features go a long way towards
+escape them (using backslashes or C<\Q...\E>) or encode them using octal,
+hex, or C<\N{}> escapes.  Taken together, these features go a long way towards
 making Perl's regular expressions more readable.  Note that you have to
 be careful not to include the pattern delimiter in the comment--perl has
 no way of knowing you did not intend to close the pattern early.  See
 the C-comment deletion code in L<perlop>.  Also note that anything inside
-a C<\Q...\E> stays unaffected by C</x>.
+a C<\Q...\E> stays unaffected by C</x>.  Also note that space is never allowed
+within a L<quantifier|Quantifiers> such as C<{3}> or C<{5,}>, regardless of
+C</x>, nor is space allowed before the C<{> or within the braces in C<\x{...}>
+nor C<\N{U+...}>.  Similarly space is not allowed before the C<{> in
+C<\N{I<name>}> and is currently significant within the braces.
 X</x>
 
 =head2 Regular Expressions