reading:
it skips as many characters as possible while not matching <code>p</code>,
and then matches <code>p</code> (plus appropriate captures).
</p>

<p>
If we want to look for a pattern only at word boundaries,
we can use the following transformer:
</p>

<pre class="example">
local t = lpeg.locale()

function atwordboundary (p)
  return lpeg.P{
    [1] = p + t.alpha^0 * (1 - t.alpha)^1 * lpeg.V(1)
  }
end
</pre>


<h3><a name="balanced"></a>Balanced parentheses</h3>
<p>
The following pattern matches only 