More specifically, what is the authoritative source for that information?
This may look like a non-programming question, but I need to know whether a registry path fed to my code contains a regular expression or not. I decided the best way to do that is assume that any occurrence of an invalid character (like '*') means a wildcard search.
For allowable key and value names, see the MSDN page on Structure of the Registry. In particular:
Each key has a name consisting of one or more printable characters. Key names are not case sensitive. Key names cannot include the backslash character (\), but any other printable character can be used. Value names and data can include the backslash character.
Registry value types are explained in detail on MSDN here, in case you need to know the allowable values.