in reply to using regex to capture a string and an array

/g indicates the match should be performed repeatedly, so

/^(...)....(\d+)/g
is basically
/ ^(...)....(\d+) (?: (?s:.*?) ^(...)....(\d+) (?: (?s:.*?) ^(...)....(\d+) (?: (?s:.*?) ^(...)....(\d+) etc )?)?)? /xg

(But with less ability to backtrack)