> ^([%a_][%w_]%.)*[%a_][%w_]$
Luaのパターンは正規表現とは別物。「*」や「()」の意味も違う。

Luaのリファレンスによると「*」は、
a single character class followed by '*',
which matches 0 or more repetitions of characters in the class.
っつーことで、「単一の文字クラス」の繰り返ししか表現できない。

また、()についても、グルーピングの意味はなく、あくまで
マッチした特定の部位を保存しておく用途にしか使えない。

もし正規表現が使いたいなら、
http://luaforge.net/projects/stdlib/
http://luaforge.net/projects/lrexlib/
ここら辺とか使ってみたらどうよ。