-- $Id: empty1.lua,v 1.3 2008/08/26 21:58:10 hahe Exp hahe $ require "lpeg" txt = "123abcabcabc123" s = lpeg.P("abc") n = lpeg.P("123") f = function(a) return "foo" end pat = (lpeg.C(s) + n^0)^0 -- "loop body may accept empty string" -- but this is ok: -- pat = (lpeg.C(s) + n)^0 pat = lpeg.Ct(pat) x = lpeg.match(pat, txt) for k,v in pairs(x) do print(k,v) end