Explain a bit the new more flexible \p\P syntax.
Jarkko Hietaniemi [Sat, 29 Sep 2001 20:15:32 +0000 (20:15 +0000)]
p4raw-id: //depot/perl@12270

pod/perlunicode.pod

index f27173c..4864909 100644 (file)
@@ -168,11 +168,16 @@ match property) constructs.  For instance, C<\p{Lu}> matches any
 character with the Unicode uppercase property, while C<\p{M}> matches
 any mark character.  Single letter properties may omit the brackets,
 so that can be written C<\pM> also.  Many predefined character classes
-are available, such as C<\p{IsMirrored}> and C<\p{InTibetan}>.  The
-recommended names of the C<In> classes are the official Unicode script
-and block names but with all non-alphanumeric characters removed, for
-example the block name C<"Latin-1 Supplement"> becomes
-C<\p{InLatin1Supplement}>.
+are available, such as C<\p{IsMirrored}> and C<\p{InTibetan}>.
+The recommended naming convention of the C<In> classes are the
+official Unicode script and block names, but with all non-alphanumeric
+characters removed, for example the block name C<"Latin-1 Supplement">
+becomes C<\p{InLatin1Supplement}>.  Perl will ignore the case of
+letters, and any space or dash can be a space, dash, underbar, or be
+missing altogether, so C<\p{ in latin 1 supplement }> will work, too.
+You can also negate both C<\p{}> and C<\P{}> by introducing a caret
+(^) between the first curly and the property name: C<\p{^InTamil}> is
+equal to C<\P{Tamil}>.
 
 Here is the list as of Unicode 3.1.0 (the two-letter classes) and
 as defined by Perl (the one-letter classes) (in Unicode materials