- /.../: Start and end regex delimiters
- |: Alternation
- (): Grouping
- ^: Start of string or start of line in multi-line mode
- \A: Start of string
- $: End of string or end of line in multi-line mode
- \Z: End of string
- \b: Word boundary
- \B: Not word boundary
- \<: Start of word
- \>: End of word
- \s: Whitespace
- \S: Not whitespace
- \w: Word
- \W: Not word
- \d: Digit
- \D: Not digit
- \x: Hexadecimal digit
- \O: Octal digit
- \n: Newline
- \r: Carriage return
- \t: Tab
- \v: Vertical tab
- \f: Form feed
- \xxx: Octal character xxx
- \xhh: Hex character hh
- .: Any character except newline (\n)
- (a|b): a or b
- (…): Group
- (?:…): Passive (non-capturing) group
- [abc]: a, b or c
- [^abc]: Not a, b or c
- [a-z]: Letters from a to z
- [A-Z]: Uppercase letters from A to Z
- [0-9]: Digits from 0 to 9
Note: Ranges are inclusive.
- *: 0 or more
- +: 1 or more
- ?: 0 or 1
- {3}: Exactly 3
- {3,}: 3 or more
- {3,5}: 3, 4 or 5
Note: Quantifiers are greedy - they match as many times as possible. Add a ? after the quantifier to make it ungreedy.
- \:Escape following character. Used to escape any of the following metacharacters: {}^$.|*+?.
- \Q: Begin literal sequence
- \E: End literal sequence
- $1: 1st group
- $2: 2nd group
- $n: nth group
- `$``: Before matched string
- $': After matched string
- $+: Last matched string
- $&: Entire matched string
Note: Some regex implementations use \ instead of $.
- ?=: Lookahead assertion
- ?!: Negative lookahead
- ?<=: Lookbehind assertion
- ?!=, ?<!: Negative lookbehind
- ?>: Once-only subexpression
- ?(): Condition if-then
- ?()|: Condition if-then-else
- ?#: Comment
- [:upper:]: Uppercase letters
- [:lower:]: Lowercase 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
- g: Global match
- i: Case-insensitive
- m: Multi-line mode. Causes ^ and $ to also match the start/end of lines.
- s: Single-line mode. Causes . to match all, including line breaks.
- x: Allow comments and whitespace in pattern
- e: Evaluate replacement
- U: Ungreedy mode
Thanks!