Quote:
This can match "aaaa" in 33 different ways"


That would be because there are 33 combinations of the configuration (a+)* in that string. Consider..

(a)* (aa)* (aaa)* (aaaa)*

and those first three can match anywhere within the string.
Quite a number of possibilities.

You just wouldn't notice the difference because the only difference is the position the individual characters reside in memory. To the human eye, they are all "a".