#!/usr/bin/perl use strict; use warnings; tr/\r\n//d for my $string = do { local $/; <> }; # slurp STDIN printf "leader %s middle %s trailer %s\n", $1, $2, $3 while $string =~ /(?<=(.....))CCCC(.{10})AGA(?=(.....))/g;