Because it {n}+does not mean what you think. In the PCRE syntax, this turns {n}into a possessive quantifier . In other words, a{5}+matches (?>a{5}). This is similar to the second +in the expression a++, which is the same as using an atomic group (?>a+) .
{n}, {min,max}. , a{2,5}+ (?>a{2,5}).
:
^(a{1,2})(ab) will match aab -> $1 is "a", $2 is "ab"
^(a{1,2}+)(ab) won't match aab -> $1 consumes "aa" possessively and $2 can't match