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