my $VALUE = do { use re 'eval'; qr/($QUOTED|$NUM)(??{'' eq $+ || '.' eq $+ ? FAIL : SUCCEED})/; }; my $text = 'name => "foo", fav.num => 3'; my @text = split /$VALUE/ => $text; __END__ $VAR1 = [ 'name => ', '"foo"', ', fav.num => ', '3' ];