in reply to Question on REGEX

Yes ! There More Than One Way To Do It, but Everything Is Different.
a* -> means zero character 'a' or more.
a+? -> means one character 'a' or more and the '?' is for none greedy (the smaller match of your regexp). That not the same as (a+)? which is optional here (because of '?').
I hope I am clear enough and that enlight you.

BoBiOne KenoBi ;)