| <socket_connection_string> | ::= "socket://"<inbound> | "socket://"<outbound> |
| <inbound> | ::= empty string | ":" | ":"<portspec> |
| <outbound> | ::= <host>":"<portspec> |
| <host> | ::= host name | IP address | <wildcarded_DNS> |
| <wildcarded_DNS> | ::= "*" *("."<domainlabel>) ; ; "*" followed by zero or more internet domain labels, separated by "." |
| <domainlabel> | ::= internet domain label |
| <portspec> | ::= <portnumber> | <portrange> | "*" |
| <portnumber> | ::= numeric port number |
| <portrange> | ::= <portnumber>"-" | "-"<portnumber> | <portnumber>"-"<portnumber> |
Note that, per RFC 3986, protocol schemes are case-insensitive. The above BNF reflects the normalized form.