> For the complete documentation index, see [llms.txt](https://hlysine.gitbook.io/readable-regexp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hlysine.gitbook.io/readable-regexp/api-reference/quantifiers.md).

# Quantifiers

<table><thead><tr><th width="287">Function</th><th width="177.33333333333331">RegExp equivalent</th><th>Explanation</th></tr></thead><tbody><tr><td><code>repeat(3,5)`foo`</code><br><code>repeat(3,5).exactly`foo`</code><br><code>repeat(3,5)('foo')</code><br><br><code>repeat(3)`foo`</code><br><code>repeat(3).exactly`foo`</code><br><code>repeat(3)('foo')</code></td><td><code>(?:foo){3,5}</code><br><br><code>(?:foo){3}</code></td><td>Match a token the specified amount of times. Supply 1 parameter for an exact number of times, or 2 parameters for min/max.</td></tr><tr><td><code>repeatLazily(3,5)`foo`</code><br><code>repeat.lazily(3,5)`foo`</code></td><td><code>(?:foo){3,5}?</code></td><td>Same as <code>repeat</code>, but match as short as possible</td></tr><tr><td><code>atLeast(3)`foo`</code><br><code>atLeast(3).exactly`foo`</code><br><code>atLeast(3)('foo')</code></td><td><code>(?:foo){3,}</code></td><td>Match a token at least the specified amount of times.</td></tr><tr><td><code>atLeastLazily(3)`foo`</code><br><code>atLeast.lazily(3)`foo`</code></td><td><code>(?:foo){3,}?</code></td><td>Same as <code>atLeast</code>, but match as short as possible</td></tr><tr><td><code>atMost(3)`foo`</code><br><code>atMost(3).exactly`foo`</code><br><code>atMost(3)('foo')</code></td><td><code>(?:foo){0,3}</code></td><td>Match a token at most the specified amount of times.</td></tr><tr><td><code>atMostLazily(3)`foo`</code><br><code>atMost.lazily(3)`foo`</code></td><td><code>(?:foo){0,3}?</code></td><td>Same as <code>atMost</code>, but match as short as possible</td></tr><tr><td><code>maybe`foo`</code><br><code>maybe.exactly`foo`</code><br><code>maybe('foo')</code></td><td><code>(?:foo)?</code></td><td>Match a token 0 or 1 times</td></tr><tr><td><code>maybeLazily`foo`</code><br><code>maybe.lazily`foo`</code></td><td><code>(?:foo)??</code></td><td>Same as <code>maybe</code>, but match as short as possible</td></tr><tr><td><code>zeroOrMore`foo`</code><br><code>zeroOrMore.exactly`foo`</code><br><code>zeroOrMore('foo')</code></td><td><code>(?:foo)*</code></td><td>Match a token 0 to infinite times</td></tr><tr><td><code>zeroOrMoreLazily`foo`</code><br><code>zeroOrMore.lazily`foo`</code></td><td><code>(?:foo)*?</code></td><td>Same as <code>zeroOrMore</code>, but match as short as possible</td></tr><tr><td><code>oneOrMore`foo`</code><br><code>oneOrMore.exactly`foo`</code><br><code>oneOrMore('foo')</code></td><td><code>(?:foo)+</code></td><td>Match a token 1 to infinite times</td></tr><tr><td><code>oneOrMoreLazily`foo`</code><br><code>oneOrMore.lazily`foo`</code></td><td><code>(?:foo)+?</code></td><td>Same as <code>oneOrMore</code>, but match as short as possible</td></tr></tbody></table>
