#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11117527 use warnings; use List::Util qw( first ); $_ = do { local $/; }; my @fields = split /(\(BEL\))/, $_; my $inrow = 2 + first { $fields[$_] eq '' } 0 .. $#fields; print splice( @fields, 0, $inrow), "\n" while @fields >= $inrow; __DATA__ Agreement(BEL)ACAP(BEL)ACAP(BEL)Accord(BEL)(BEL)albatross(BEL)(BEL)(BEL)albatros(BEL)(BEL)alleged violation(BEL)(BEL)(BEL)infraction présumée(BEL)(BEL)allowable(BEL)(BEL)(BEL)admissible(BEL)(BEL)anchovy(BEL)(BEL)(BEL)anchois(BEL)(BEL)angler fish, burbot(BEL)(BEL)(BEL)lotte(BEL)(BEL)