string.gmatch (s, pattern)

Restituisce una funzione iteratore che, ogni volta che viene chiamata, restituisce le catture successive del pattern sulla stringa s.

Se 'pattern non specifica alcuna cattura, l'intera corrispondenza viene prodotta in ogni chiamata.

Ad esempio, il seguente ciclo
s = "hello world from Lua"
for w in string.gmatch(s, "%a+") do
print(w)

end
itererà su tutte le parole della stringa 's, stampandone una per riga. L'esempio successivo raccoglie in una tabella tutte le coppie 'key=value della stringa data:
t = {}
s = "from=world, to=Lua"

for k, v in string.gmatch(s, "(%w+)=(%w+)") do t[k] = v

end

Per questa funzione, un ''^ all'inizio di un modello non funziona come ancoraggio, poiché impedirebbe l'iterazione.