in reply to regex issues

Do you really need to specify a max? Can't you just replace {1,9} with +?

The last \s+ needs to be \s* (or needs to be removed) for regexp to match what you provided.

(\n\w+) should be (?:\n\w+) (speeds things up a little), or maybe even (?:\n[ACGT]+) (for conciseness).

$ssh[0] = <<'__EOI__'; >MWG869551-C3277-T7 CCCATCCAGTTTATGAGATCGCGCATTGATCGCCCGAGGCGGTCTA GCCGCCACACCACTAATGTATCGCCGGCGCGCAATTGCTCTTTAATTTTCTCAAGCCCCG GCCGCGCAGTGACAACGCCAGAGACCTTATCAGTGATGACCTTTTCGCAGCCCGCCGCCC GTAAAGCGTCGGTTTGAAGATCCAAATTTTGTTCGATGGTCGAGACCCGCGCATAGCCAA TCTTCATACGAGCAGTGCCCGGCCATTGAGAAAAGGAAGAAAACTCATGTTATCCTGAAA TTCATTGCCCTAGTTTTCTTTACCGAGTAGATTTACCGGCATTCGGTAGAATTGGCAACG TGTTGGAGATCGCGTGACCATTACC >... __EOI__ if ($ssh[0] =~ /^\s*>(\w+)\-(\w+)\-(\w+)\s*((?:\n[ACGT]+)+)/) { print "$1 $2 $3 \n $4\n"; } __END__ output ====== MWG869551 C3277 T7 CCCATCCAGTTTATGAGATCGCGCATTGATCGCCCGAGGCGGTCTA GCCGCCACACCACTAATGTATCGCCGGCGCGCAATTGCTCTTTAATTTTCTCAAGCCCCG GCCGCGCAGTGACAACGCCAGAGACCTTATCAGTGATGACCTTTTCGCAGCCCGCCGCCC GTAAAGCGTCGGTTTGAAGATCCAAATTTTGTTCGATGGTCGAGACCCGCGCATAGCCAA TCTTCATACGAGCAGTGCCCGGCCATTGAGAAAAGGAAGAAAACTCATGTTATCCTGAAA TTCATTGCCCTAGTTTTCTTTACCGAGTAGATTTACCGGCATTCGGTAGAATTGGCAACG TGTTGGAGATCGCGTGACCATTACC