== Why is this an issue?

include::../description.adoc[]


=== Noncompliant code example

[source,php]
----
/<.+?>/
/".*?"/
----


=== Compliant solution

[source,php]
----
/<[^>]++>/
/"[^"]*+"/
----

or


[source,php]
----
/<[^>]+>/
/"[^"]*"/
----


=== Exceptions

This rule only applies in cases where the reluctant quantifier can easily be replaced with a negated character class. That means the repetition has to be terminated by a single character or character class. Patterns such as the following, where the alternatives without reluctant quantifiers are more complicated, are therefore not subject to this rule:


[source,php]
----
/<!--.*?-->/
-/\*.*?\*/-
----

