ch</span> <span class="mdzsyn-symbol">my-grammar</span> <span class="mdzsyn-string">"(babaabab)"</span>) <span class="mdzsyn-comment"># -&gt; nil</span></code></pre><p>Keep in mind that recursion is implemented with a stack, meaning that very recursive grammars
can overflow the stack. The compiler is able to turn some recursion into iteration via tail call optimization, but some patterns
may fail on large inputs. It is also possible to construct (very poorly written) patterns that will result in long loops 