Un automa finito deterministico o non deterministico riconosce solo le lingue regolari, che sono descritte da espressioni regolari. La definizione di un'espressione regolare è semplice. Let S essere un alfabeto. Quindi il set vuoto, la stringa vuota e ogni elemento di S sono espressioni regolari (oltre S). Let u e v essere espressioni regolari. Quindi l'unione (u | v), concatenazione (uv), e la chiusura (u *) di u e v sono espressioni regolari oltre S. Questa definizione è facilmente estendibile alle lingue regolari. Nessuna altra espressione è un'espressione regolare. Come sottolineato, alcuni riferimenti a posteriori sono un esempio. Le pagine di Wikipedia sulle lingue e le espressioni regolari sono buone referenze.
In sostanza, alcune "espressioni regolari" non sono regolari perché non è possibile costruire automi di un tipo particolare per riconoscerli. Ad esempio, la lingua
{a^i b^i: i < = 0}
non è regolare. Questo perché l'automa accettante richiederebbe infiniti stati, ma un automa che accetta lingue regolari deve avere un numero finito di stati.
Questo probabilmente dovrebbe essere un wiki della comunità –
@webdestroya: Posso capire CW, ma perché non su SO? – BoltClock
@NullUser - Non è una domanda piuttosto soggettiva? –