Trying local $/ = undef; $StartTN = qr/(^DES|^TN).*?/; $EndTN = qr/((DATE[ A-Z0-9]*)+?(?=^$)|ZONE [ A-Z0-9]*(?=^$))/; if ( /($StartTN)/smx .. /($EndTN)/smx) { }