Previous: Match-zero-or-one Operator, Up: Repetition Operators


14.3.4.4 Interval Operators ({ ... } or \{ ... \})

If the syntax bit RE_INTERVALS is set, then Regex recognizes interval expressions. They repeat the smallest possible preceding regular expression a specified number of times.

If the syntax bit RE_NO_BK_BRACES is set, ‘{’ represents the open-interval operator and ‘}’ represents the close-interval operator ; otherwise, ‘\{’ and ‘\}’ do.

Specifically, supposing that ‘{’ and ‘}’ represent the open-interval and close-interval operators; then:

{count}
matches exactly count occurrences of the preceding regular expression.
{min,}
matches min or more occurrences of the preceding regular expression.
{min, max}
matches at least min but no more than max occurrences of the preceding regular expression.

The interval expression (but not necessarily the regular expression that contains it) is invalid if:

If the interval expression is invalid and the syntax bit RE_NO_BK_BRACES is set, then Regex considers all the characters in the would-be interval to be ordinary. If that bit isn't set, then the regular expression is invalid.

If the interval expression is valid but there is no preceding regular expression on which to operate, then if the syntax bit RE_CONTEXT_INVALID_OPS is set, the regular expression is invalid. If that bit isn't set, then Regex considers all the characters—other than backslashes, which it ignores—in the would-be interval to be ordinary.