rfc3986

What do * / ( and [ mean in the rfc 3986 URI syntax description?


Reading through the URI syntax description (RFC 3986) and trying to understand what their syntax descriptions mean.

For example, a URI has to have a schema part, which is restricted by the following syntax description:

scheme      = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

But the specification never tells you what * ( and / mean. Anything in quotations seems to mean exactly that character and ALPHA and DIGIT are seemingly the sets of ASCII characters pertaining to the alphanumeric set. I am guessing / is an or, ( may be a group, and * may be 0 or more. But it is not clarified in the specification.

There are other syntax descriptions like:

URI         = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

I am also guessing the [ means that part is optional.

Does anybody know if my interpretation is correct? And would you be able to point me to the RFC specification of these characters?


Solution

  • These are all well described in RFC 5234 which is the Augmented BNF format.