Pass 5 at perldelta - module and utility updates cleanup.
[p5sagit/p5-mst-13.2.git] / pod / perlre.pod
index 25beb24..900a01d 100644 (file)
@@ -183,8 +183,10 @@ In addition, Perl defines the following:
     \pP        Match P, named property.  Use \p{Prop} for longer names.
     \PP        Match non-P
     \X Match eXtended Unicode "combining character sequence",
-        equivalent to C<(?:\PM\pM*)>
-    \C Match a single C char (octet) even under utf8.
+        equivalent to (?:\PM\pM*)
+    \C Match a single C char (octet) even under Unicode.
+       NOTE: breaks up characters into their UTF-8 bytes,
+       so you may end up with malformed pieces of UTF-8.
 
 A C<\w> matches a single alphanumeric character or C<_>, not a whole word.
 Use C<\w+> to match a string of Perl-identifier characters (which isn't 
@@ -193,7 +195,7 @@ list of alphabetic characters generated by C<\w> is taken from the
 current locale.  See L<perllocale>.  You may use C<\w>, C<\W>, C<\s>, C<\S>,
 C<\d>, and C<\D> within character classes, but if you try to use them
 as endpoints of a range, that's not a range, the "-" is understood literally.
-See L<utf8> for details about C<\pP>, C<\PP>, and C<\X>.
+See L<perlunicode> for details about C<\pP>, C<\PP>, and C<\X>.
 
 The POSIX character class syntax
 
@@ -217,10 +219,22 @@ equivalents (if available) are as follows:
     word        \w     [3]
     xdigit
 
-  [1] A GNU extension equivalent to C<[ \t]>, `all horizontal whitespace'.
-  [2] Not I<exactly equivalent> to C<\s> since the C<[[:space:]]> includes
-      also the (very rare) `vertical tabulator', "\ck", chr(11).
-  [3] A Perl extension. 
+=over
+
+=item [1]
+
+A GNU extension equivalent to C<[ \t]>, `all horizontal whitespace'.
+
+=item [2]
+
+Not exactly equivalent to C<\s> since the C<[[:space:]]> includes
+also the (very rare) `vertical tabulator', \ck", chr(11).
+
+=item [3]
+
+A Perl extension. 
+
+=back
 
 For example use C<[:upper:]> to match all the uppercase characters.
 Note that the C<[]> are part of the C<[::]> construct, not part of the
@@ -230,9 +244,10 @@ whole character class.  For example:
 
 matches zero, one, any alphabetic character, and the percentage sign.
 
-If the C<utf8> pragma is used, the following equivalences to Unicode
-\p{} constructs and equivalent backslash character classes (if available),
-will hold:
+The following equivalences to Unicode \p{} constructs and equivalent
+backslash character classes (if available), will hold:
+
+    [:...:]    \p{...}         backslash
 
     alpha       IsAlpha
     alnum       IsAlnum
@@ -291,7 +306,7 @@ work just fine) it is included for completeness.
 You can negate the [::] character classes by prefixing the class name
 with a '^'. This is a Perl extension.  For example:
 
-    POSIX      trad. Perl  utf8 Perl
+    POSIX      traditional Unicode
 
     [:^digit:]      \D      \P{IsDigit}
     [:^space:]     \S      \P{IsSpace}
@@ -683,7 +698,7 @@ this yourself would be a productive exercise), but finishes in a fourth
 the time when used on a similar string with 1000000 C<a>s.  Be aware,
 however, that this pattern currently triggers a warning message under
 the C<use warnings> pragma or B<-w> switch saying it
-C<"matches the null string many times">):
+C<"matches null string many times in regex">.
 
 On simple groups, such as the pattern C<< (?> [^()]+ ) >>, a comparable
 effect may be achieved by negative look-ahead, as in C<[^()]+ (?! [^()] )>.
@@ -1024,7 +1039,7 @@ Some people get too used to writing things like:
 
 This is grandfathered for the RHS of a substitute to avoid shocking the
 B<sed> addicts, but it's a dirty habit to get into.  That's because in
-PerlThink, the righthand side of a C<s///> is a double-quoted string.  C<\1> in
+PerlThink, the righthand side of an C<s///> is a double-quoted string.  C<\1> in
 the usual double-quoted string means a control-A.  The customary Unix
 meaning of C<\1> is kludged in for C<s///>.  However, if you get into the habit
 of doing that, you get yourself into trouble if you then add an C</e>