Full example

SYNTAX = SYNTAX RULE, { SYNTAX RULE } ;
SYNTAX RULE
  = META IDENTIFIER, '=', DEFINITIONS LIST, ' ;' ;
DEFINITIONS LIST
  = SINGLE DEFINITION,
    { '|', SINGLE DEFINITION } ;
SINGLE DEFINITION = TERM, { ',', TERM } ;
TERM = FACTOR, [ '-', EXCEPTION ] ;
EXCEPTION = FACTOR ;
FACTOR = [ INTEGER, '*' ], PRIMARY ;
PRIMARY
  = OPTIONAL SEQUENCE | REPEATED SEQUENCE
  | SPECIAL SEQUENCE | GROUPED SEQUENCE
  | META IDENTIFIER | TERMINAL | EMPTY ;
EMPTY = ;
OPTIONAL SEQUENCE = '[', DEFINITIONS LIST, ']' ;
REPEATED SEQUENCE = '{', DEFINITIONS LIST, '}' ;
GROUPED SEQUENCE = '(', DEFINITIONS LIST, ')' ;
TERMINAL
  = "'", CHARACTER - "'",
    { CHARACTER - "'" }, "'"
  | '"', CHARACTER - '"',
    { CHARACTER - '"' }, '"' ;
META IDENTIFIER = LETTER, { LETTER | DIGIT } ;
INTEGER = DIGIT, { DIGIT } ;
SPECIAL SEQUENCE = '?', { CHARACTER - '?' }, '?' ;
COMMENT = '(*', { COMMENT SYMBOL }, '*)' ;
COMMENT SYMBOL
  = COMMENT | TERMINAL | SPECIAL SEQUENCE
    | CHARACTER ;

Full example with alternative syntax

SYNTAX = SYNTAX RULE, (: SYNTAX RULE :).
SYNTAX RULE
  = META IDENTIFIER, '=', DEFINITIONS LIST, '.'. (* '.' instead of ';' *)
DEFINITIONS LIST
  = SINGLE DEFINITION,
    (: '/', SINGLE DEFINITION :).
SINGLE DEFINITION = TERM, (: ',', TERM :).
TERM = FACTOR, (/ '-', EXCEPTION /).
EXCEPTION = FACTOR.
FACTOR = (/ INTEGER, '*' /), PRIMARY.
PRIMARY
  = OPTIONAL SEQUENCE / REPEATED SEQUENCE (* / is the same as | *)
  / SPECIAL SEQUENCE / GROUPED SEQUENCE
  / META IDENTIFIER / TERMINAL / EMPTY.
EMPTY = .
OPTIONAL SEQUENCE = '(/', DEFINITIONS LIST, '/)'.
REPEATED SEQUENCE = '(:', DEFINITIONS LIST, ':)'.
GROUPED SEQUENCE = '(', DEFINITIONS LIST, ')'.
TERMINAL
  = "'", CHARACTER - "'",
    (: CHARACTER - "'" :), "'"
  / '"', CHARACTER - '"',
    (: CHARACTER - '"' :), '"'.
META IDENTIFIER = LETTER, (: LETTER / DIGIT :).
INTEGER = DIGIT, (: DIGIT :).
SPECIAL SEQUENCE = '?', (: CHARACTER - '?' :), '?'.
COMMENT = '(*', (: COMMENT SYMBOL :), '*)'.
COMMENT SYMBOL
  = COMMENT / TERMINAL / SPECIAL SEQUENCE
    / CHARACTER.