Functions

astring = 1*ASTRING-CHAR / string

atom = 1*ATOM-CHAR

base64 = *(4base64-char) [base64-terminal]

charset = atom / quoted

ASTRING-CHAR = ATOM-CHAR / resp-specials

ATOM-CHAR = <any CHAR except atom-specials>

atom-specials = "(" / ")" / "{" / SP / CTL / list-wildcards / quoted-specials / resp-specials

base64-char = ALPHA / DIGIT / "+" / "/" ; Case-sensitive

CHAR8 = %x01-ff

quoted-specials = DQUOTE / "\"

resp-specials = "]"

TEXT-CHAR = %x01-09 / %x0B-0C / %x0E-7F

literal = "{" number "}" CRLF *CHAR8

nil = "NIL"

nstring = string / nil

number = 1*DIGIT

nz-number = digit-nz *DIGIT

quoted = DQUOTE *QUOTED-CHAR DQUOTE

QUOTED-CHAR = <any TEXT-CHAR except quoted-specials> / "\" quoted-specials

string = quoted / literal

tag = 1*<any ASTRING-CHAR except "+">

text = 1*TEXT-CHAR