Попробуйте этот код:
s=[[
/get value0
/get [opt1][opt2] value1
/get [opt1][opt2][opt3][opt4] value2
/get value3
/get [opt1] value4
]]
for l in s:gmatch("(/.-)\n") do
print((l:gsub("%b[]%s*","")))
end
Сначала она разбивает строку на строки, а затем удаляет все строки в скобках, а затем пробелы.
Более простое совпадение - l:gsub(" .* "," ")
, которое удалит все с первого пробела до последнего.
Если вы хотите разбить полученную строку, используйте этот код:
for l in s:gmatch("(/.-)\n") do
local var1, var2 = l:gsub(" .* "," "):match("(.*) (.*)$")
print(var1, var2 )
end