in reply to Regular expression * vs +

since the group exists I would expect it to match
Yes: the group exists; in that you are right. But don't forget the empty string at the start also exists. Both have the potential to make a match happen. As the engine works left-to-right, the empty string does the job this time.