Help me to understand some regular expresions usage

Can someone explain me how those restatements are constructed

        suffix=${name#*.}
        prefix=${main%%+([0-9])}
        num=10#${num}
  1. What is the logic to use a reg-expr in variable name
  2. In first string - the '#' seems to mean 'everithing after next mached', but the '.' in reg-exp is a one character, here it seems it used litteraly. Why?
  3. I guess '%%' means return part that match next expression? Is it correct?
  4. Why the '()' used in second string? [0-9] - any digit; '+' one or more times; so, +[0-9] should return consecutive numbers from string?! What is the need in '()'
  5. How to understand third line? What is done by that whith string of digits?

Thank you

You don't use regular expressions in parameter expansion; you use
filename expansion (a.k.a. wildcard) patterns.

See:
POSIX shell parameter expansions