Для начала, лучше не использовать слово
string
для имени переменной, т.к. это целая библиотека для работы со строками. Вы перекрываете к ней доступ.
В Lua нет полноценных регулярных выражений, потому что Lua задумывался как максимально лёгкий язык. Вместо этого используется т.н. "соответствие шаблону". Так что
{2}
не работает. Просто в большинстве случаев хватает модификаторов
+ - * ?
В вашем случае подойдёт:
local str = "qw.erty"
return str:match("([a-z][a-z])%.")
Или даже:
local str = "qw.erty"
return str:match("(%l%l)%.")