A string &quot;a^n b^n&quot; (que não é regular) não pode ser reconhecida com uma regexp do Perl (a menos de trapaças envolvendo &quot;use re &#39;eval&#39;&quot;).<br><br>a^n b^n = &quot;&quot;, &quot;ab&quot;, &quot;aabb&quot;, &quot;aaabbb&quot;, etc... , mas não &quot;aabbbb&quot;, nem &quot;aaab&quot;, etc.
<br>Essa linguagem (i.e. conjunto de strings) não é &quot;regular&quot;, mas sim, &quot;livre de contexto&quot;. Logo, é reconhecida por um autômato-a-pilha, ou por uma gramática livre de contexto:<br><br>S = [vazio] | aSb
<br><br>Outro exemplo são strings de &quot;(&quot; e &quot;)&quot; balanceados: &quot;()&quot;, &quot;(()()(()))&quot;, etc... Não dá pra fazer uma regexp que reconheça isso. Acho que a gramática correspondente é:<br><br>
S = [vazio] | (S)S<br><br>Em resumo, cuidado: a palavra regular pode não significar o que você acha que ela significa :-)<br><br><div><span class="gmail_quote">On 5/24/07, <b class="gmail_sendername">Luis Motta Campos</b>
 &lt;<a href="mailto:luismottacampos@yahoo.co.uk">luismottacampos@yahoo.co.uk</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt; Mas se a sua string, mesmo que seja uma linha, tiver muitas variações<br>&gt; -- poderíamos dizer, se ela for mais ou menos &quot;irregular&quot; -- nesse<br>&gt; caso uma gramática pode ajudar bastante.<br><br>&nbsp;&nbsp; Sem querer forçar a amizade, você pode por favor me dar um exemplo?
<br><br>&nbsp;&nbsp; Putamplexos!<br></blockquote></div><br>-- <br>[]s<br>Wendel<br><br>&quot;Não ajustar o auto-ajuste&quot; - <a href="http://wendel.scardua.net/">http://wendel.scardua.net/</a>