Valid characters for URI schemes?

custom-protocol, illegal-characters, standards-compliance, url-scheme

Solution

According to RFC 2396, Appendix A:

  scheme        = alpha *( alpha | digit | "+" | "-" | "." )

Meaning:

The scheme should start with a letter (upper or lower case), and can contains letters (still upper and lower case), number, "+", "-" and ".".

Note: in the case of

paparazzi:http:[//<host>[:[<port>][<transport>]]/

the scheme is only the "paparazzi" part.

Problem

I was thinking about Registering an Application to a URL Protocol and I'd like to know, what characters are allowed in a scheme? Some examples: - h323 (has numbers) - `h323:[<user>@]<host>[:<port>][;<parameters>]` - z39.50r (has a `.` as well) - `z39.50r://<host>[:<port>]/<database>?<docid>[;esn=<elementset>][;rs=<recordsyntax>]` - paparazzi:http (has a `:`) - `paparazzi:http:[//<host>[:[<port>][<transport>]]/` So, what characters can I fancy using? Can we have... - `@:TwitterUser` - `#:HashTag` - `$:CapitalStock` - `?:ID-10T` ...etc., as desired, or characters in the scheme are restricted by standard?

Original source