/usr/share/perl5/pod
NameSizeModeActions
perl.pod166670644editdlrm
perl56delta.pod1072010644editdlrm
perl58delta.pod1151650644editdlrm
perl561delta.pod1247130644editdlrm
perl581delta.pod380600644editdlrm
perl582delta.pod44700644editdlrm
perl583delta.pod63350644editdlrm
perl584delta.pod73630644editdlrm
perl585delta.pod58890644editdlrm
perl586delta.pod46510644editdlrm
perl587delta.pod83570644editdlrm
perl588delta.pod252810644editdlrm
perl589delta.pod539040644editdlrm
perl5004delta.pod562400644editdlrm
perl5005delta.pod342830644editdlrm
perl5100delta.pod555330644editdlrm
perl5101delta.pod438880644editdlrm
perl5120delta.pod892710644editdlrm
perl5121delta.pod101410644editdlrm
perl5122delta.pod96030644editdlrm
perl5123delta.pod41000644editdlrm
perl5124delta.pod36720644editdlrm
perl5125delta.pod76830644editdlrm
perl5140delta.pod1443250644editdlrm
perl5141delta.pod79660644editdlrm
perl5142delta.pod68920644editdlrm
perl5143delta.pod77600644editdlrm
perl5144delta.pod63270644editdlrm
perl5160delta.pod1336510644editdlrm
perl5161delta.pod61420644editdlrm
perl5162delta.pod35940644editdlrm
perl5163delta.pod40850644editdlrm
perl5180delta.pod1194290644editdlrm
perl5181delta.pod65970644editdlrm
perl5182delta.pod53350644editdlrm
perl5184delta.pod46420644editdlrm
perl5200delta.pod1156980644editdlrm
perl5201delta.pod108990644editdlrm
perl5202delta.pod125090644editdlrm
perl5203delta.pod93920644editdlrm
perl5220delta.pod1309630644editdlrm
perl5221delta.pod107670644editdlrm
perl5222delta.pod126290644editdlrm
perl5223delta.pod84560644editdlrm
perl5224delta.pod44600644editdlrm
perl5240delta.pod649230644editdlrm
perl5241delta.pod82150644editdlrm
perl5242delta.pod41130644editdlrm
perl5243delta.pod114280644editdlrm
perl5244delta.pod45100644editdlrm
perl5260delta.pod1018350644editdlrm
perl5261delta.pod79270644editdlrm
perl5262delta.pod78800644editdlrm
perl5263delta.pod70670644editdlrm
perl5280delta.pod721130644editdlrm
perl5281delta.pod46390644editdlrm
perl5282delta.pod62000644editdlrm
perl5283delta.pod51110644editdlrm
perl5300delta.pod412810644editdlrm
perl5301delta.pod57300644editdlrm
perl5302delta.pod46820644editdlrm
perl5303delta.pod49800644editdlrm
perl5320delta.pod546010644editdlrm
perl5321delta.pod70030644editdlrm
perlaix.pod204380644editdlrm
perlamiga.pod57490644editdlrm
perlandroid.pod82220644editdlrm
perlapi.pod4931060644editdlrm
perlapio.pod213360644editdlrm
perlartistic.pod70100644editdlrm
perlbook.pod83860644editdlrm
perlboot.pod2940644editdlrm
perlbot.pod3040644editdlrm
perlbs2000.pod79940644editdlrm
perlcall.pod567380644editdlrm
perlcheat.pod44800644editdlrm
perlclib.pod96070644editdlrm
perlcn.pod47630644editdlrm
perlcommunity.pod69830644editdlrm
perlcygwin.pod272020644editdlrm
perldata.pod497820644editdlrm
perldbmfilter.pod49810644editdlrm
perldebguts.pod423310644editdlrm
perldebtut.pod221520644editdlrm
perldebug.pod393830644editdlrm
perldelta.pod70030644editdlrm
perldeprecation.pod208250644editdlrm
perldiag.pod2969860644editdlrm
perldos.pod105220644editdlrm
perldsc.pod256140644editdlrm
perldtrace.pod79590644editdlrm
perlebcdic.pod843450644editdlrm
perlembed.pod375690644editdlrm
perlexperiment.pod72340644editdlrm
perlfork.pod133550644editdlrm
perlform.pod166080644editdlrm
perlfreebsd.pod16230644editdlrm
perlfunc.pod4037770644editdlrm
perlgit.pod295910644editdlrm
perlgov.pod144810644editdlrm
perlgpl.pod138150644editdlrm
perlguts.pod1621030644editdlrm
perlhack.pod431570644editdlrm
perlhacktips.pod576920644editdlrm
perlhacktut.pod61530644editdlrm
perlhaiku.pod15080644editdlrm
perlhist.pod561640644editdlrm
perlhpux.pod306090644editdlrm
perlhurd.pod19940644editdlrm
perlintern.pod835650644editdlrm
perlinterp.pod337150644editdlrm
perlintro.pod221350644editdlrm
perliol.pod348040644editdlrm
perlipc.pod715290644editdlrm
perlirix.pod44150644editdlrm
perljp.pod84310644editdlrm
perlko.pod122080644editdlrm
perllexwarn.pod3550644editdlrm
perllinux.pod20070644editdlrm
perllocale.pod741120644editdlrm
perllol.pod95800644editdlrm
perlmacos.pod9980644editdlrm
perlmacosx.pod121240644editdlrm
perlmod.pod261970644editdlrm
perlmodinstall.pod102610644editdlrm
perlmodlib.pod763480644editdlrm
perlmodstyle.pod225880644editdlrm
perlmroapi.pod32800644editdlrm
perlnetware.pod66480644editdlrm
perlnewmod.pod110370644editdlrm
perlnumber.pod83530644editdlrm
perlobj.pod357170644editdlrm
perlootut.pod267570644editdlrm
perlop.pod1488880644editdlrm
perlopenbsd.pod12240644editdlrm
perlopentut.pod152230644editdlrm
perlos2.pod933480644editdlrm
perlos390.pod165270644editdlrm
perlos400.pod47650644editdlrm
perlpacktut.pod513700644editdlrm
perlperf.pod498810644editdlrm
perlplan9.pod51250644editdlrm
perlpod.pod230760644editdlrm
perlpodspec.pod686280644editdlrm
perlpolicy.pod265620644editdlrm
perlport.pod886930644editdlrm
perlpragma.pod51760644editdlrm
perlqnx.pod66730644editdlrm
perlre.pod1308170644editdlrm
perlreapi.pod302450644editdlrm
perlrebackslash.pod322850644editdlrm
perlrecharclass.pod497070644editdlrm
perlref.pod354320644editdlrm
perlreftut.pod188260644editdlrm
perlreguts.pod393010644editdlrm
perlrepository.pod5090644editdlrm
perlrequick.pod191410644editdlrm
perlreref.pod155900644editdlrm
perlretut.pod1225270644editdlrm
perlriscos.pod15290644editdlrm
perlrun.pod559800644editdlrm
perlsec.pod276010644editdlrm
perlsecpolicy.pod194500644editdlrm
perlsolaris.pod298430644editdlrm
perlsource.pod71320644editdlrm
perlstyle.pod87340644editdlrm
perlsub.pod744050644editdlrm
perlsymbian.pod153440644editdlrm
perlsyn.pod451380644editdlrm
perlsynology.pod79600644editdlrm
perlthrtut.pod465220644editdlrm
perltie.pod393140644editdlrm
perltoc.pod7018000644editdlrm
perltodo.pod3720644editdlrm
perltooc.pod2940644editdlrm
perltoot.pod2940644editdlrm
perltrap.pod106230644editdlrm
perltru64.pod84920644editdlrm
perltw.pod44630644editdlrm
perlunicode.pod913530644editdlrm
perlunicook.pod256580644editdlrm
perlunifaq.pod136440644editdlrm
perluniintro.pod386470644editdlrm
perluniprops.pod4416140644editdlrm
perlunitut.pod79510644editdlrm
perlutil.pod72910644editdlrm
perlvar.pod825770644editdlrm
perlvms.pod508230644editdlrm
perlvos.pod38430644editdlrm
perlwin32.pod403170644editdlrm
Edit: /usr/share/perl5/pod/perlreref.pod (15590B)
=head1 NAME perlreref - Perl Regular Expressions Reference =head1 DESCRIPTION This is a quick reference to Perl's regular expressions. For full information see L and L, as well as the L section in this document. =head2 OPERATORS C<=~> determines to which variable the regex is applied. In its absence, $_ is used. $var =~ /foo/; C determines to which variable the regex is applied, and negates the result of the match; it returns false if the match succeeds, and true if it fails. $var !~ /foo/; C searches a string for a pattern match, applying the given options. m Multiline mode - ^ and $ match internal lines s match as a Single line - . matches \n i case-Insensitive x eXtended legibility - free whitespace and comments p Preserve a copy of the matched string - ${^PREMATCH}, ${^MATCH}, ${^POSTMATCH} will be defined. o compile pattern Once g Global - all occurrences c don't reset pos on failed matches when using /g a restrict \d, \s, \w and [:posix:] to match ASCII only aa (two a's) also /i matches exclude ASCII/non-ASCII l match according to current locale u match according to Unicode rules d match according to native rules unless something indicates Unicode n Non-capture mode. Don't let () fill in $1, $2, etc... If 'pattern' is an empty string, the last I matched regex is used. Delimiters other than '/' may be used for both this operator and the following ones. The leading C can be omitted if the delimiter is '/'. C lets you store a regex in a variable, or pass one around. Modifiers as for C, and are stored within the regex. C substitutes matches of 'pattern' with 'replacement'. Modifiers as for C, with two additions: e Evaluate 'replacement' as an expression r Return substitution and leave the original string untouched. 'e' may be specified multiple times. 'replacement' is interpreted as a double quoted string unless a single-quote (C<'>) is the delimiter. C is like C but matches only once. No alternate delimiters can be used. Must be reset with reset(). =head2 SYNTAX \ Escapes the character immediately following it . Matches any single character except a newline (unless /s is used) ^ Matches at the beginning of the string (or line, if /m is used) $ Matches at the end of the string (or line, if /m is used) * Matches the preceding element 0 or more times + Matches the preceding element 1 or more times ? Matches the preceding element 0 or 1 times {...} Specifies a range of occurrences for the element preceding it [...] Matches any one of the characters contained within the brackets (...) Groups subexpressions for capturing to $1, $2... (?:...) Groups subexpressions without capturing (cluster) | Matches either the subexpression preceding or following it \g1 or \g{1}, \g2 ... Matches the text from the Nth group \1, \2, \3 ... Matches the text from the Nth group \g-1 or \g{-1}, \g-2 ... Matches the text from the Nth previous group \g{name} Named backreference \k Named backreference \k'name' Named backreference (?P=name) Named backreference (python syntax) =head2 ESCAPE SEQUENCES These work as in normal strings. \a Alarm (beep) \e Escape \f Formfeed \n Newline \r Carriage return \t Tab \037 Char whose ordinal is the 3 octal digits, max \777 \o{2307} Char whose ordinal is the octal number, unrestricted \x7f Char whose ordinal is the 2 hex digits, max \xFF \x{263a} Char whose ordinal is the hex number, unrestricted \cx Control-x \N{name} A named Unicode character or character sequence \N{U+263D} A Unicode character by hex ordinal \l Lowercase next character \u Titlecase next character \L Lowercase until \E \U Uppercase until \E \F Foldcase until \E \Q Disable pattern metacharacters until \E \E End modification For Titlecase, see L. This one works differently from normal strings: \b An assertion, not backspace, except in a character class =head2 CHARACTER CLASSES [amy] Match 'a', 'm' or 'y' [f-j] Dash specifies "range" [f-j-] Dash escaped or at start or end means 'dash' [^f-j] Caret indicates "match any character _except_ these" The following sequences (except C<\N>) work within or without a character class. The first six are locale aware, all are Unicode aware. See L and L for details. \d A digit \D A nondigit \w A word character \W A non-word character \s A whitespace character \S A non-whitespace character \h A horizontal whitespace \H A non horizontal whitespace \N A non newline (when not followed by '{NAME}';; not valid in a character class; equivalent to [^\n]; it's like '.' without /s modifier) \v A vertical whitespace \V A non vertical whitespace \R A generic newline (?>\v|\x0D\x0A) \pP Match P-named (Unicode) property \p{...} Match Unicode property with name longer than 1 character \PP Match non-P \P{...} Match lack of Unicode property with name longer than 1 char \X Match Unicode extended grapheme cluster POSIX character classes and their Unicode and Perl equivalents: ASCII- Full- POSIX range range backslash [[:...:]] \p{...} \p{...} sequence Description ----------------------------------------------------------------------- alnum PosixAlnum XPosixAlnum 'alpha' plus 'digit' alpha PosixAlpha XPosixAlpha Alphabetic characters ascii ASCII Any ASCII character blank PosixBlank XPosixBlank \h Horizontal whitespace; full-range also written as \p{HorizSpace} (GNU extension) cntrl PosixCntrl XPosixCntrl Control characters digit PosixDigit XPosixDigit \d Decimal digits graph PosixGraph XPosixGraph 'alnum' plus 'punct' lower PosixLower XPosixLower Lowercase characters print PosixPrint XPosixPrint 'graph' plus 'space', but not any Controls punct PosixPunct XPosixPunct Punctuation and Symbols in ASCII-range; just punct outside it space PosixSpace XPosixSpace \s Whitespace upper PosixUpper XPosixUpper Uppercase characters word PosixWord XPosixWord \w 'alnum' + Unicode marks + connectors, like '_' (Perl extension) xdigit ASCII_Hex_Digit XPosixDigit Hexadecimal digit, ASCII-range is [0-9A-Fa-f] Also, various synonyms like C<\p{Alpha}> for C<\p{XPosixAlpha}>; all listed in L Within a character class: POSIX traditional Unicode [:digit:] \d \p{Digit} [:^digit:] \D \P{Digit} =head2 ANCHORS All are zero-width assertions. ^ Match string start (or line, if /m is used) $ Match string end (or line, if /m is used) or before newline \b{} Match boundary of type specified within the braces \B{} Match wherever \b{} doesn't match \b Match word boundary (between \w and \W) \B Match except at word boundary (between \w and \w or \W and \W) \A Match string start (regardless of /m) \Z Match string end (before optional newline) \z Match absolute string end \G Match where previous m//g left off \K Keep the stuff left of the \K, don't include it in $& =head2 QUANTIFIERS Quantifiers are greedy by default and match the B leftmost. Maximal Minimal Possessive Allowed range ------- ------- ---------- ------------- {n,m} {n,m}? {n,m}+ Must occur at least n times but no more than m times {n,} {n,}? {n,}+ Must occur at least n times {n} {n}? {n}+ Must occur exactly n times * *? *+ 0 or more times (same as {0,}) + +? ++ 1 or more times (same as {1,}) ? ?? ?+ 0 or 1 time (same as {0,1}) The possessive forms (new in Perl 5.10) prevent backtracking: what gets matched by a pattern with a possessive quantifier will not be backtracked into, even if that causes the whole match to fail. There is no quantifier C<{,n}>. That's currently illegal. =head2 EXTENDED CONSTRUCTS (?#text) A comment (?:...) Groups subexpressions without capturing (cluster) (?pimsx-imsx:...) Enable/disable option (as per m// modifiers) (?=...) Zero-width positive lookahead assertion (*pla:...) Same, starting in 5.32; experimentally in 5.28 (*positive_lookahead:...) Same, same versions as *pla (?!...) Zero-width negative lookahead assertion (*nla:...) Same, starting in 5.32; experimentally in 5.28 (*negative_lookahead:...) Same, same versions as *nla (?<=...) Zero-width positive lookbehind assertion (*plb:...) Same, starting in 5.32; experimentally in 5.28 (*positive_lookbehind:...) Same, same versions as *plb (?...) Grab what we can, prohibit backtracking (*atomic:...) Same, starting in 5.32; experimentally in 5.28 (?|...) Branch reset (?...) Named capture (?'name'...) Named capture (?P...) Named capture (python syntax) (?[...]) Extended bracketed character class (?{ code }) Embedded code, return value becomes $^R (??{ code }) Dynamic regex, return value used as regex (?N) Recurse into subpattern number N (?-N), (?+N) Recurse into Nth previous/next subpattern (?R), (?0) Recurse at the beginning of the whole pattern (?&name) Recurse into a named subpattern (?P>name) Recurse into a named subpattern (python syntax) (?(cond)yes|no) (?(cond)yes) Conditional expression, where "(cond)" can be: (?=pat) lookahead; also (*pla:pat) (*positive_lookahead:pat) (?!pat) negative lookahead; also (*nla:pat) (*negative_lookahead:pat) (?<=pat) lookbehind; also (*plb:pat) (*lookbehind:pat) (?) named subpattern has matched something ('name') named subpattern has matched something (?{code}) code condition (R) true if recursing (RN) true if recursing into Nth subpattern (R&name) true if recursing into named subpattern (DEFINE) always false, no no-pattern allowed =head2 VARIABLES $_ Default variable for operators to use $` Everything prior to matched string $& Entire matched string $' Everything after to matched string ${^PREMATCH} Everything prior to matched string ${^MATCH} Entire matched string ${^POSTMATCH} Everything after to matched string Note to those still using Perl 5.18 or earlier: The use of C<$`>, C<$&> or C<$'> will slow down B regex use within your program. Consult L for C<@-> to see equivalent expressions that won't cause slow down. See also L. Starting with Perl 5.10, you can also use the equivalent variables C<${^PREMATCH}>, C<${^MATCH}> and C<${^POSTMATCH}>, but for them to be defined, you have to specify the C

(preserve) modifier on your regular expression. In Perl 5.20, the use of C<$`>, C<$&> and C<$'> makes no speed difference. $1, $2 ... hold the Xth captured expr $+ Last parenthesized pattern match $^N Holds the most recently closed capture $^R Holds the result of the last (?{...}) expr @- Offsets of starts of groups. $-[0] holds start of whole match @+ Offsets of ends of groups. $+[0] holds end of whole match %+ Named capture groups %- Named capture groups, as array refs Captured groups are numbered according to their I paren. =head2 FUNCTIONS lc Lowercase a string lcfirst Lowercase first char of a string uc Uppercase a string ucfirst Titlecase first char of a string fc Foldcase a string pos Return or set current match position quotemeta Quote metacharacters reset Reset m?pattern? status study Analyze string for optimizing matching split Use a regex to split a string into parts The first five of these are like the escape sequences C<\L>, C<\l>, C<\U>, C<\u>, and C<\F>. For Titlecase, see L; For Foldcase, see L. =head2 TERMINOLOGY =head3 Titlecase Unicode concept which most often is equal to uppercase, but for certain characters like the German "sharp s" there is a difference. =head3 Foldcase Unicode form that is useful when comparing strings regardless of case, as certain characters have complex one-to-many case mappings. Primarily a variant of lowercase. =head1 AUTHOR Iain Truskett. Updated by the Perl 5 Porters. This document may be distributed under the same terms as Perl itself. =head1 SEE ALSO =over 4 =item * L for a tutorial on regular expressions. =item * L for a rapid tutorial. =item * L for more details. =item * L for details on the variables. =item * L for details on the operators. =item * L for details on the functions. =item * L for FAQs on regular expressions. =item * L for a reference on backslash sequences. =item * L for a reference on character classes. =item * The L module to alter behaviour and aid debugging. =item * L =item * L, L, L and L for details on regexes and internationalisation. =item * I by Jeffrey Friedl (L) for a thorough grounding and reference on the topic. =back =head1 THANKS David P.C. Wollmann, Richard Soderberg, Sean M. Burke, Tom Christiansen, Jim Cromie, and Jeffrey Goff for useful advice. =cut