A Teoria da Linguagem está relacionada à Teoria da Computação. Qual é o lado mais filosófico da Ciência da Computação, sobre decidir quais programas são possíveis, ou quais serão possíveis de escrever, e que tipo de problemas é impossível escrever um algoritmo para resolver.
Uma expressão regular é uma maneira de descrever uma linguagem regular. Uma linguagem regular é uma linguagem que pode ser decidida por um autômato finito determinístico.
Você deve ler o artigo sobre máquinas de estado finito: http://en.wikipedia.org/wiki/Finite_state_machine
E linguagens regulares:
http://en.wikipedia.org/wiki/Regular_language
Todas as linguagens regulares são linguagens livres de contexto, mas há linguagens livres de contexto que não são regulares. Uma Context Free Language é o conjunto de todas as strings aceitas por uma Context Free Grammer ou um Pushdown Automata que é uma máquina de estados finitos com uma única pilha: http://en.wikipedia.org/wiki/Pushdown_automaton#PDA_and_Context-free_Languages
Existem linguagens mais complicadas que requerem uma Máquina de Turing (qualquer programa possível que você possa escrever no seu computador) para decidir se uma string está ou não na linguagem.
A teoria da linguagem também está muito relacionada ao problema P vs. NP e algumas outras coisas interessantes.
Meu livro de texto do terceiro ano de Introdução à Ciência da Computação foi muito bom em explicar essas coisas: Introdução à Teoria da Computação. Por Michael Sipser. Mas me custou cerca de US $ 160 para comprá-lo novo e não é muito grande. Talvez você possa encontrar uma cópia usada ou encontrar uma cópia em uma biblioteca ou algo que possa ajudá-lo.
EDITAR:
As limitações das expressões regulares e das classes superiores de idioma têm sido pesquisadas muito nos últimos 50 anos ou mais. Você pode estar interessado no lema do bombeamento para linguagens regulares. É um meio de provar que um determinado idioma não é regular:
http://en.wikipedia.org/wiki/Pumping_lemma_for_regular_languages
Se uma linguagem não é regular, pode ser Context Free, o que significa que pode ser descrita por um Context Free Grammer, ou pode ser até mesmo em uma classe de linguagem superior, você poderia provar que não é Context Free pelo lema de bombeamento para Context Free linguagens que é semelhante ao das expressões regulares.
Uma linguagem pode até ser indecidível, o que significa que até mesmo uma máquina de Turing (pode programar seu computador pode ser executado) não pode ser programada para decidir se uma string deve ser aceita como na linguagem ou rejeitada.
Acho que a parte em que você está mais interessado são as Máquinas de Estados Finitos (Determinísticas e Determinísticas) para ver quais linguagens uma Expressão Regular pode decidir, e o lema do bombeamento para provar quais linguagens não são regulares.
Basicamente, uma linguagem não é regular se precisar de algum tipo de memória ou habilidade para contar. A linguagem dos parênteses correspondentes não é regular, por exemplo, porque a máquina precisa se lembrar se abriu um parêntese para saber se deve fechar um.
A linguagem de todas as strings que usam as letras aeb que contêm pelo menos três b's é uma linguagem normal: a ba ba ba
A linguagem de todas as strings que usam as letras aeb que contêm mais b's do que a's não é regular.
Além disso, você não deve dizer que todas as linguagens finitas são regulares, por exemplo:
A linguagem de todas as strings com menos de 50 caracteres usando as letras aeb que contêm mais b's do que a's é regular, já que é finita, sabemos que pode ser descrita como (b | abb | bab | bba | aabbb | ababb |. ..) ect até que todas as combinações possíveis sejam listadas.
Automata Theorem