(a+)*
can become any of:
(a)*
(aa)*
(aaa)*
(aaaa)*
and that can become (i have the whole string in black, the part the regex matches in red):
1. aaaa
2. aaaa
3. aaaa
4. aaaa
5. aaaa
6. aaaa
7. aaaa
8. aaaa
9. aaaa
10. aaaa
And that's just with the (a+) part.
If you add * to the equation... that's most of those above, another 2 or 3 or 4 times. We've already got 10 combinations.
Here is the extended version:
1a) aaaa
b) aaaa
c) aaaa
d) aaaa
2a) aaaa
b) aaaa
c) aaaa
3a) aaaa
b) aaaa
etc..
Some of these may look a lot alike to you, but in terms of processing and how they are matched, there are 33 ways to come up with that match.