Another useful thing would be able to match a certain number of characters that matched a certain criteria. There are two types of searches you can do when you're dealing with quantifiers: greedy or nongreedy, or in other terms maximal, and minimal. A maximal or greedy search tries to match as many characters as it can while still returning a true value. So if we were looking for 1 to 4 b's in a row and had a string with 3 b's in a row we would match the 3 b's. If it was a minimal or nongreedy search only the first b would be matched.

Here's a table that sums up quantifiers.

GreedyNongreedyAllowed numbers for a match
???0 or 1 time
++?1 or more times
**?0 or more times
{i}{i}?exactly i times
{i,}{i,}?i or more times
{i,j}{i,j}?at lease i times and at most j times

Obviously Perl needs to know what these quantifiers are referring to. The quantifier is associated with the character directly to its left unless parentheses are used for grouping.

/b{3}/ #matches three b's /(ha){3}/ #matches hahaha
Onto Character Class Abbreviations