This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Unicode::UCD: Add charprops_all() public function
[perl5.git] / pod / perlrebackslash.pod
index c943b85..230e76d 100644 (file)
@@ -68,15 +68,17 @@ as C<Not in [].>
  \A                Beginning of string.  Not in [].
  \b                Word/non-word boundary. (Backspace in []).
  \B                Not a word/non-word boundary.  Not in [].
- \cX               Control-X
+ \cX               Control-X.
  \C                Single octet, even under UTF-8.  Not in [].
+                   (Deprecated)
  \d                Character class for digits.
  \D                Character class for non-digits.
  \e                Escape character.
  \E                Turn off \Q, \L and \U processing.  Not in [].
  \f                Form feed.
  \F                Foldcase till \E.  Not in [].
- \g{}, \g1         Named, absolute or relative backreference.  Not in []
+ \g{}, \g1         Named, absolute or relative backreference.
+                   Not in [].
  \G                Pos assertion.  Not in [].
  \h                Character class for horizontal whitespace.
  \H                Character class for non horizontal whitespace.
@@ -85,7 +87,7 @@ as C<Not in [].>
  \l                Lowercase next character.  Not in [].
  \L                Lowercase till \E.  Not in [].
  \n                (Logical) newline character.
- \N                Any character but newline.  Experimental.  Not in [].
+ \N                Any character but newline.  Not in [].
  \N{}              Named or numbered (Unicode) character or sequence.
  \o{}              Octal escape sequence.
  \p{}, \pP         Character with the given Unicode property.
@@ -246,16 +248,17 @@ Mnemonic: I<0>ctal or I<o>ctal.
  $str = "Perl";
  $str =~ /\o{120}/;  # Match, "\120" is "P".
  $str =~ /\120/;     # Same.
- $str =~ /\o{120}+/; # Match, "\120" is "P", it's repeated at least once
+ $str =~ /\o{120}+/; # Match, "\120" is "P",
+                     # it's repeated at least once.
  $str =~ /\120+/;    # Same.
  $str =~ /P\053/;    # No match, "\053" is "+" and taken literally.
  /\o{23073}/         # Black foreground, white background smiling face.
- /\o{4801234567}/    # Raises a warning, and yields chr(4)
+ /\o{4801234567}/    # Raises a warning, and yields chr(4).
 
 =head4 Disambiguation rules between old-style octal escapes and backreferences
 
 Octal escapes of the C<\000> form outside of bracketed character classes
-potentially clash with old-style backreferences (see L</Absolute referencing>
+potentially clash with old-style backreferences (see L</Absolute referencing>
 below).  They both consist of a backslash followed by numbers.  So Perl has to
 use heuristics to determine whether it is a backreference or an octal escape.
 Perl uses the following rules to disambiguate:
@@ -282,7 +285,7 @@ takes only the first three for the octal escape; the rest are matched as is.
     $pat .= ")" x 999;
  /^($pat)\1000$/;   #  Matches 'aa'; there are 1000 capture groups.
  /^$pat\1000$/;     #  Matches 'a@0'; there are 999 capture groups
-                    #    and \1000 is seen as \100 (a '@') and a '0'
+                    #  and \1000 is seen as \100 (a '@') and a '0'.
 
 =back
 
@@ -430,7 +433,7 @@ Mnemonic: I<g>roup.
 =head4 Examples
 
  /(\w+) \g1/;    # Finds a duplicated word, (e.g. "cat cat").
- /(\w+) \1/;     # Same thing; written old-style
+ /(\w+) \1/;     # Same thing; written old-style.
  /(.)(.)\g2\g1/;  # Match a four letter palindrome (e.g. "ABBA").
 
 
@@ -573,11 +576,14 @@ categories above. These are:
 
 =item \C
 
-C<\C> always matches a single octet, even if the source string is encoded
+(Deprecated.) C<\C> always matches a single octet, even if the source
+string is encoded
 in UTF-8 format, and the character to be matched is a multi-octet character.
 This is very dangerous, because it violates
 the logical character abstraction and can cause UTF-8 sequences to become malformed.
 
+Use C<utf8::encode()> instead.
+
 Mnemonic: oI<C>tet.
 
 =item \K
@@ -641,14 +647,15 @@ Unicode, but one can be composed by using a G followed by a Unicode "COMBINING
 UPWARDS ARROW BELOW", and would be displayed by Unicode-aware software as if it
 were a single character.
 
+The match is greedy and non-backtracking, so that the cluster is never
+broken up into smaller components.
+
 Mnemonic: eI<X>tended Unicode character.
 
 =back
 
 =head4 Examples
 
- "\x{256}" =~ /^\C\C$/;    # Match as chr (0x256) takes 2 octets in UTF-8.
-
  $str =~ s/foo\Kbar/baz/g; # Change any 'bar' following a 'foo' to 'baz'
  $str =~ s/(.)\K\g1//g;    # Delete duplicated characters.