A Lua gotcha: gmatch doesn't support '^'. I don't know why I was doing that weird single-iteration loop anyway.
IJQP7HJKG5EMEVCPOL7ARC3B7WT55OPCH4MLKD6435XRDPFNX3XQC
EZHO4TSWIYYUE73S6XQWIEF3HA3H7MKCNJOT27NTWTVSPVS2SL5QC
LRDM35CEK3OHXOTB7TEFJRL7P6PQWO5ZG3F2BVA7DIDFHBPJQ7KAC
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