The restrictions imposed on domains vary depending on what extension you are registering and what country the domain is associated with.
Domains can be formed using only use letters and numbers from the ASCII set of characters e.g. (a-z) (A-Z) (0-9). Hyphens are also allowed but must be surrounded by characters, therefore not at the beginning or end of the domain. You're not allowed to use special characters (like '#*%') and spaces cannot be used.
Common Country-Specific Extensions