BNF Format for comm Protocol URI

<comm_connection_string> ::= "comm:"<port_id>[<options_list>] | "comm:"<wildcarded_port_id>
<port_id> ::= non-empty string of alphanumeric characters ;
;
; Note: the port_id string is case sensitive.
<wildcarded_port_id> ::= non-empty string of alphanumeric characters, terminated by "*"
<options_list> ::= *(<baud_rate_string>| <bitsperchar>| <stopbits>| <parity>| <blocking>| <autocts>| <autorts>) ;
;
; Note: the options_list string is case sensitive.
;
; If an option duplicates a previous option in the
; option list, that option overrides the previous option.
<baud_rate_string> ::= ";baudrate="<baud_rate>
<baud_rate> ::= non-empty string of digits
<bitsperchar> ::= ";bitsperchar="<bit_value>
<bit_value> ::= "7" | "8"
<stopbits> ::= ";stopbits="<stop_value>
<stop_value> ::= "1" | "2"
<parity> ::= ";parity="<parity_value>
<parity_value> ::= "even" | "odd" | "none"
<blocking> ::= ";blocking="<on_off>
<autocts> ::= ";autocts="<on_off>
<autorts> ::= ";autorts="<on_off>
<on_off> ::= "on" | "off"

Note that, per RFC 3986, protocol schemes are case-insensitive. The above BNF reflects the normalized form.