Wenn ich zum Beispiel wollte die Programmiersprache Lisp zu definieren, wo ein Name auch nicht-alphanumerische Zeichen umfassen kann, sollte ich mit einer Notation alle verwendbaren Zeichen Liste wie:Sind Regexs in BNF- und EBNF-Notationen erlaubt?
validchar ::= "a" | "b" | "c" ... "-" | "*" | "$" ... ;
name = validchar, (validchar | digit)+;
Oder bin ich zu verwenden, erlaubt regexs, wie:
validchar ::= "[^(^)^\s^\d]";
name ::= validchar, (validchar | digit)*;
Oder auch:
name ::= "[^(^)^\s^\d]", "[^(^)^\s]"*;
Dies würde es viel verkürzen, und es würde sogar Zeichen wie ₩, ¥, € usw., die ich nicht aufzählen kann, aber tatsächlich nutzbar ist.