Les expressions régulières vues en cours sont en général données dans la syntaxe ordinaire (celle que lit et écrit le logiciel automate). Cette syntaxe repose sur des règles de priorité des opérateurs analogues à celles qui sont en usage dans les expressions arithmétiques. La notation complètement parenthésée n'utilise pas ces règles, elle met une paire de parenthèses autour de l'application de chaque opérateur à ses opérandes (même pour un opérateur unaire). En outre, pour plus de précision, on écrit un point pour noter la concaténation. Cette notation est plus lourde mais plus explicite. Elle représente fidèlement l'arbre associé à l'expression. Exemple l'expression (aa|b)*ab(bb)* s'écrit en notation complètement parenthésée ((((((a.a)|b)*).a).b).((b.b)*)) L'arbre associé est représenté ci-contre. On a déjà vu un exemple d'arbre au cours n° 6. |
a, b, d, s
},
et l'expression régulièreab+s|ad|abb+d|(s|d)(a|bb+a)
. On appelle L le langage décrit par cette expression.b
? un mot qui se termine par b
?b
?b
représente le caractère espace, alias blanc (ASCII 0x20)s
représente une ponctuation simple (le point et la virgule)d
représente une ponctuation double (le point-virgule, les deux-points, le point d'interrogation et le point d'exclamation)a
représente autre chose (une lettre ou un chiffre).