"A" + "",
  A = "a" * lpeg.V"S" + "b" * lpeg.V"A" * lpeg.V"A",
  B = "b" * lpeg.V"S" + "a" * lpeg.V"B" * lpeg.V"B",
} * -1
</pre>
<p>
It is equivalent to the following grammar in standard PEG notation:
</p>
<pre class="example">
  S <- 'a' B / 'b' A / ''
  A <- 'a' S / 'b' A A
  B <- 'b' S / 'a' B B
</pre>


<h2><a name="captures">Captures</a></h2>

<p>
A <em>capture</em> is a pattern that creates values
(the so called <em>semantic information</em>) when it matches.
LPeg offers several kinds of captures,
wh