
4не-терминалы, не использующие имя свойства. В данном случае имя не-терминала выводится между символами "<" и ">", например, <border-width>. Заметьте разницу между <border-width> и <'border-width'>; последнее определено в терминах предыдущего. Определение не-терминала размещается поблизости от его первого вхождения в данной спецификации. В электронной версии документа каждый объект этого типа ссылается на соответствующее определение значения.
Другие слова в этих определениях являются ключевыми словами, которые обязаны появляться буквально, без кавычек (например, red). Слэш (/) и запятая (,) также обязаны появляться буквально.
Значения должны быть организованы так:
[x]. Несколько соседних слов означают, что все они должны появляться в указанном порядке.
[x]. Вертикальная линия (|) разделяет две или более альтернативы: только одна из них должна быть записана.
[x]. Двойная вертикальная черта (||) разделяет две или более опции: одна или более из них должны быть записаны в любом порядке.
[x]. Скобки ([ ]) служат для группирования.
Соседство является более строгим, чем двойная вертикальная черта, а двойная вертикальная черта - строже, чем одинарная. Таким образом, следующие строки эквивалентны:
a b | c || d e [ a b ] | [ c || [ d e ]]
За каждым типом, ключевым словом или группой в скобках может следовать один из модификаторов:
[x]. Звёздочка (*) - означает, что предыдущий тип, слово или группа появляется ноль или более раз.
[x]. 