# Regex: List of Tokes

<table data-full-width="true"><thead><tr><th width="318">Description</th><th width="502">Extended description</th><th>Example</th><th data-hidden></th></tr></thead><tbody><tr><td>A single character of: a, b or c</td><td>Matches either an a, b or c character</td><td><code>[abc]</code></td><td>Common tokens</td></tr><tr><td>A character except for: a, b or c</td><td>Matches any character except for an a, b or c</td><td><code>[^abc]</code></td><td>Common tokens</td></tr><tr><td>A character in the range: a-z</td><td>Matches any characters between a and z, including a and z.</td><td><code>[a-z]</code></td><td>Common tokens</td></tr><tr><td>A character not in the range: a-z</td><td>Matches any characters except those in the range a-z.</td><td><code>[^a-z]</code></td><td>Common tokens</td></tr><tr><td>A character in the range: a-z or A-Z</td><td>Matches any characters between a-z or A-Z. You can combine as much as you, please.</td><td><code>[a-zA-Z]</code></td><td>Common tokens</td></tr><tr><td>Any single character</td><td>Matches any character other than newline (or including line terminators with the /s flag)</td><td><code>.</code></td><td>Common tokens</td></tr><tr><td>Alternate - match either a or b</td><td>Matches either what is before the | or what is after it - in this case `a` or `b`.</td><td><code>a|b</code></td><td>Common tokens</td></tr><tr><td>Any whitespace character</td><td>Matches any space, tab or newline character.</td><td><code>\s</code></td><td>Common tokens</td></tr><tr><td>Any non-whitespace character</td><td>Matches anything other than a space, tab or newline.</td><td><code>\S</code></td><td>Common tokens</td></tr><tr><td>Any digit</td><td>Matches any decimal digit. Equivalent to [0-9].</td><td><code>\d</code></td><td>Common tokens</td></tr><tr><td>Any non-digit</td><td>Matches anything other than a decimal/digit.</td><td><code>\D</code></td><td>Common tokens</td></tr><tr><td>Any word character</td><td>Matches any letter, digit or underscore. Equivalent to [a-zA-Z0-9_].</td><td><code>\w</code></td><td>Common tokens</td></tr><tr><td>Any non-word character</td><td>Matches anything other than a letter, digit or underscore. Equivalent to [^a-zA-Z0-9_]</td><td><code>\W</code></td><td>Common tokens</td></tr><tr><td>Match everything enclosed</td><td>A non-capturing group allows you to apply quantifiers to part of your regex but does not capture/assign an ID.</td><td><code>(?:...)</code></td><td>Common tokens</td></tr><tr><td>Capture everything enclosed</td><td>Isolates part of the full match to be later referred to by ID within the regex or the matches array. IDs start at 1.</td><td><code>(...)</code></td><td>Common tokens</td></tr><tr><td>Zero or one of a</td><td>Matches an `a` character or nothing.</td><td><code>a?</code></td><td>Common tokens</td></tr><tr><td>Zero or more of a</td><td>Matches zero or more consecutive `a` characters.</td><td><code>a*</code></td><td>Common tokens</td></tr><tr><td>One or more of a</td><td>Matches one or more consecutive `a` characters.</td><td><code>a+</code></td><td>Common tokens</td></tr><tr><td>Exactly 3 of a</td><td>Matches exactly 3 consecutive `a` characters.</td><td><code>a{3}</code></td><td>Common tokens</td></tr><tr><td>3 or more of a</td><td>Matches at least 3 consecutive `a` characters.</td><td><code>a{3,}</code></td><td>Common tokens</td></tr><tr><td>Between 3 and 6 of a</td><td>Matches between 3 and 6 (inclusive) consecutive `a` characters.</td><td><code>a{3,6}</code></td><td>Common tokens</td></tr><tr><td>Start of string</td><td>Matches the start of a string without consuming any characters. If /m multiline mode is used, this will also match immediately after a newline character.</td><td><code>^</code></td><td>Common tokens</td></tr><tr><td>End of string</td><td>Matches the end of a string without consuming any characters. If multiline mode is used, this will also match immediately before a newline character.</td><td><code>$</code></td><td>Common tokens</td></tr><tr><td>A word boundary</td><td>Matches, without consuming any characters, immediately between a character matched by \w and a character not matched by \w (in either order). It cannot be used to separate non words from words.</td><td><code>\b</code></td><td>Common tokens</td></tr><tr><td>Non-word boundary</td><td>Matches, without consuming any characters, at the position between two characters matched by \w.</td><td><code>\B</code></td><td>Common tokens</td></tr><tr><td>Newline</td><td>Matches a newline character</td><td><code>\n</code></td><td>General tokens</td></tr><tr><td>Carriage return</td><td>Matches a carriage return, unicode character U+2185.</td><td><code>\r</code></td><td>General tokens</td></tr><tr><td>Tab</td><td>Matches a tab character. Historically, tab stops happen every 8 characters.</td><td><code>\t</code></td><td>General tokens</td></tr><tr><td>Null character</td><td>Matches a null character, most often visually represented in Unicode using U+2400.</td><td><code>\0</code></td><td>General tokens</td></tr><tr><td>Positive Lookahead</td><td>Asserts that the given subpattern can be matched here, without consuming characters</td><td><code>(?=...)</code></td><td>Group Constructs</td></tr><tr><td>Negative Lookahead</td><td>Starting at the current position in the expression, ensures that the given pattern will not match. Does not consume characters.</td><td><code>(?!...)</code></td><td>Group Constructs</td></tr><tr><td>Positive Lookbehind</td><td>Ensures that the given pattern will match, ending at the current position in the expression. The pattern must have a fixed width. Does not consume any characters.</td><td><code>(?&#x3C;=...)</code></td><td>Group Constructs</td></tr><tr><td>Negative Lookbehind</td><td>Ensures that the given pattern would not match and end at the current position in the expression. The pattern must have a fixed width. Does not consume characters.</td><td><code>(?&#x3C;!...)</code></td><td>Group Constructs</td></tr></tbody></table>
