### ANCHORS ### ^ Start of string, or start of line in multi-line pattern \A Start of string $ End of string, or end of line in multi-line pattern \Z End of string \b Word boundary \B Not word boundary \< Start of word \> End of word ### CHARACTER CLASSES ### \c Control character \s White space \S Not white space \d Digit \D Not digit \w Word \W Not word \x Hexadecimal digit \O Octal digit ### QUANTIFIERS ### * 0 or more {3} Exactly 3 + 1 or more {3,} 3 or more ? 0 or 1 {3,5} 3, 4 or 5 ### GROUPS AND RANGES ### . Any character except new line (\n) (a|b) a or b (...) Group (?:...) Passive (non-capturing) group [abc] Range (a or b or c) [^abc] Not (a or b or c) [a-q] Lower case letter from a to q [A-Q] Upper case letter from A to Q [0-7] Digit from 0 to 7 \x Group/subpattern number "x" ### SPECIAL CHARACTERS ### \n New line \r Carriage return \t Tab \v Vertical tab \f Form feed \xxx Octal character xxx \xhh Hex character hh ### PATTERN MODIFIERS ### g Global match i * Case-insensitive m * Multiple lines s * Treat string as single line x * Allow comments and whitespace in pattern e * Evaluate replacement U * Ungreedy pattern ### STRING REPLACEMENT ### $n nth non-passive group $2 "xyz" in /^(abc(xyz))$/ $1 "xyz" in /^(?:abc)(xyz)$/ $` Before matched string $' After matched string $+ Last matched string $& Entire matched string ### POSIX ### [:upper:] Upper case letters [:lower:] Lower case letters [:alpha:] All letters [:alnum:] Digits and letters [:digit:] Digits [:xdigit:] Hexadecimal digits [:punct:] Punctuation [:blank:] Space and tab [:space:] Blank characters [:cntrl:] Control characters [:graph:] Printed characters [:print:] Printed characters and spaces [:word:] Digits, letters and underscore