string.gmatch (s, padrão)

Retorna uma função de iterador que, a cada vez que é chamada, retorna as próximas capturas do padrão sobre a cadeia de caracteres s.

Se ' pattern não especificar nenhuma captura, a correspondência completa será produzida em cada chamada.

Como exemplo, o seguinte loop
s = "hello world from Lua"
for w in string.gmatch(s, "%a+") do
print(w)

end
itera sobre todas as palavras da string ' s, imprimindo uma por linha. O próximo exemplo coleta todos os pares ' key=value da cadeia de caracteres fornecida em uma tabela:
t = {}
s = "from=world, to=Lua"

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

end

Para essa função, um '^' no início de um padrão não funciona como âncora, pois isso impediria a iteração.