I'm a bit out of my depth here, but I think you may be confusing a regular language with a regular expression engine (which is really what this forum is all about).
In fact, "a*b*" is a regular expression in the sense used in this forum in that it will match all of the following strings
aaaabbbb
aaaaaabbbbbb
aaaaa
bbbbb
<= that's a blank string
The regex engine will try to match zero or more 'a' and stop when the next character it comes to is not an 'a'. It will then try to match zero or more 'b's and stop when the next character is not a 'b'. This means that it will also match:
gfde
by matching the 'null' substring right at the beginning.
Your other examples may be definitions of a regular language which may be implementable in a LL(1) or some other form of parser. However, they are not recognisable as 'regular expression' patterns that we normally talk about here.
Susan