Ambientazione:
- espressioni regolari con riferimenti secondari
- lingua unaria (alfabeto a 1 simbolo)
È il seguente problema decidibile in questa impostazione:
- Data un'espressione regolare con riferimenti secondari, definisce una lingua regolare?
Ad esempio, (aa+)\1definisce una lingua normale, mentre (aa+)\1+non lo fa. Possiamo decidere quale è il caso?
Per concretezza, "espressioni regolari con riferimenti arretrati" si riferiscono ad esempio al seguente sottoinsieme delle normali espressioni regolari compatibili con Perl :
acorrisponde al caratterea(l'unico carattere dell'alfabeto)X*corrisponde a 0 o più occorrenze diXX|YpartiteXoY- le parentesi possono essere utilizzate per raggruppare e catturare
\1.\2, ecc. corrispondono alla stessa stringa della prima, seconda, ecc. coppia di parentesi
Possiamo anche usare le normali scorciatoie, ad esempio X+= XX*.