== Why is this an issue?

include::../description.adoc[]

=== Noncompliant code example

[source,php]
----
"/(?:)*/"      // same as the empty regex, the '*' accomplishes nothing
"/(?:|x)*/"    // same as the empty regex, the alternative has no effect
"/(?:x|)*/"    // same as 'x*', the empty alternative has no effect
"/(?:x*|y*)*/" // same as 'x*', the first alternative would always match, y* is never tried
"/(?:x?)*/"    // same as 'x*'
"/(?:x?)+/"    // same as 'x*'
----


=== Compliant solution

[source,php]
----
"/x*/"
----

