#!/usr/bin/perl use strict; use warnings; use Text::Balanced qw(extract_delimited); use Data::Dumper; my @strings = (q~Angela "Königin von Berlin" Merkel~, q~Angela "Königin von Berlin"~, q~"Königin von Berlin" Merkel~); for my $text(@strings){ my @result = extract_delimited($text,'"','.*?'); print Dumper(\@result); }