[1] [[RFC 4011]] ([[PolicyScript]]) は [[EBNF]]
で [[PolicyScript]] [WEAK[([[C++]] の部分集合)]] を定義しています。

仕様書:
- [[RFC 4011]] <urn:ietf:rfc:4011>
-- 5. 

[2]
RFC 4011 で[[英語]]で記述された説明に基づく RFC 4011
の EBNF の構文:
- [CODE(ABNF)[[DFN[終端]] := "'" 1*<[[ASCII]] 文字集合の[[文字]]> "'" / "<" 1*<説明する語句: [[ASCII]] 文字集合の[[文字]]> ">"]]
- [CODE(ABNF)[[DFN[非終端]] := 1*(letter / "_")]]
- [CODE(ABNF)[[DFN[生成規則]] := 非終端 ":" 定義]]
- [CODE(ABNF)[[DFN[注釈]] := "--" 注釈内容 改行]]

定義の中で:
:[CODE[|]]: 選択
:[CODE[([VAR[・・・]])]]:集団化
:[CODE['''['''[VAR[・・・]]''']''']]:省略可能
:[CODE[[VAR[項目]]?]]:省略可能
:[CODE[[VAR[項目]]*]]:零個以上
:[CODE[[VAR[項目]]+]]:一個以上

明確に説明されているのはこれだけで、自明だと思って説明しなかったのでしょうが、
途中に[[空白]]を自由に挿入できるなどの [[BNF]] 
各種で一般的な規則を採用しています。

実例を見ると、終端表記ではアポストロフィ1つを表すのに
[SAMP[''']] と平気で書いています。 [CODE[<]] と
[CODE[>]] を使った終端は [SAMP[<TAB>]] のように制御文字の表現に使われています。
[CODE(ABNF)[定義]]に記号を一切使わずに直接英語で説明しているものもあったりします。

[3] 使用例 [SRC[[RFC 4011]]
[PRE(example)[
   hex_constant:      ( '0x' | '0X' ) hex_digit+

   integer_constant:  decimal_constant | octal_constant | hex_constant

   identifier:        letter ( letter | digit )*

[CODE(comment)[-- Phrase Structure Grammar]]

   [CODE(comment)[-- Expressions]]

   primary_expr:      identifier | integer_constant | char_constant
                    | string_literal  |  '(' expression ')'
]PRE]

