$ perl -e " use strict; use Text::Balanced qw/extract_bracketed/; my $var='Aur S-P 250 Pre (Chlorine + cillin (cilli G caine) + Sulfate)'; my ($ext,$rem,$pre)=extract_bracketed($var,'()',qr/[^(]+/); die 'oops' if $rem; $ext =~ s/(^\(|\)$)//sg; # remove lead/trail () print qq{$pre\n$ext\n}; " Aur S-P 250 Pre Chlorine + cillin (cilli G caine) + Sulfate