== Why is this an issue?

A regular expression is a sequence of characters that specifies a match pattern in text. Among the most important concepts are:

* Character classes: defines a set of characters, any one of which can occur in an input string for a match to succeed.
* Quantifiers: used to specify how many instances of a character, group, or character class must be present in the input for a match.
* Wildcard (`.`): matches all characters except line terminators (also matches them if the `s` flag is set).

Many of these features include shortcuts of widely used expressions, so there is more than one way to construct a regular expression to achieve the same results. 
For example, to match a two-digit number, one could write `+[0-9]{2,2}+` or `+\d{2}+`. The latter is not only shorter but easier to read and thus to maintain. 

This rule recommends replacing some quantifiers and character classes with more concise equivalents:

* `+\d+` for `+[0-9]+` and `+\D+` for `[^0-9]`
* `+\w+` for `+[A-Za-z0-9_]+` and `+\W+` for ``++[^A-Za-z0-9_]++``
* `+.+` for character classes matching everything (e.g. `+[\w\W]+`, `+[\d\D]+`, or `+[\s\S]+` with `+s+` flag)
* `+x?+` for `+x{0,1}+`, `+x*+` for `+x{0,}+`, `+x++` for `+x{1,}+`, `+x{N}+` for `+x{N,N}+`