! - the parameter it follows can be of specified type or NULL (only applies to a, o, O, r, and z).
_BAR_ - indicates that the remaining parameters are optional. The storage variables corresponding to these parameters should be initialized to default values by the extension, since they will not be touched by the parsing function if the parameters are not passed.