in reply to Pattern Matching request

It would be helpful if you said what you want to do for each match. I'd do a scalar context //g match first, loop through the to get the rest (untested):
$data =~ /^\d+STRUCT/g or "warn: gang aft agley"; while ($data =~ /\d+STRUCT/g) { # process match }