A Lua gotcha: gmatch doesn't support '^'. I don't know why I was doing that weird single-iteration loop anyway.
4KA2ZZITHSFUNOTRWOUORVYJVRFI5KCEOR2NJJUK4OWBIIIXUWFAC
EP5R7WRBMFV7CFIVIWWOUUCB3E4HMNTJGJPKMHE6YH3XMERQXCGQC
ZJPFAJVMVVKNZCQPQPCHIPCLMG5VRNVUMG5ZY3VR5B57PRNFJAOAC
for numeric_prefix, root in filename:gmatch('(%d+)-(.+)') do -- only runs once
for numeric_prefix, root in filename:gmatch('(%d+)-(.+)') do
-- only runs once
local numeric_prefix, root = filename:match('^(%d+)-(.+)') if numeric_prefix then
local numeric_prefix, root = filename:match('^(%d+)-(.+)')
if numeric_prefix then