I was looking at this question Greedy vs. Reluctant vs. Possessive Quantifiers
I can see how *+
and *
both match zero or more times, but the possessive quantifier *+
will match forwards as much as possible.. And the *
will do .*
and backtrack. And I can accept that *+
would be more efficient when the .*
string is long.
I'm interested in when they give different results though.
And I saw a comment
@moodboom, there are zero cases ever (mathematical fact) where possessive quantifiers will produce a match that will not be produced by simple greedy quantifiers. There are occasional cases where they will produce a no match when greedy quantifiers would produce a match. For ALL other cases (where greedy and possessive produce the same results), possessive quantifiers give a performance gain. – Wildcard May 5 at 23:00
I'd be very interested to see this expanded upon, specific cases where possessive and greedy quantifiers give a different result.
Contrasting *+
and *
I'd also be interested in the case of what different results are possible, contrasting ?+
vs ?