#!/usr/bin/perl use strict; use warnings; my @strings = ( "'VAL1','VAL2',\"VALX\"" , "foo 'VAL1','VAL2',\"VALX\"" , "foo 'VAL1','VAL2',\"VALX\" bar" , "'VAL1','VAL2',\"VALX\" bar" ); for my $string (@strings) { my ($prefix, $innerstring, $postfix) = $string =~ /(.*?["'])(.+)(["'].*)/; $innerstring =~ s/["']//g; print $prefix, $innerstring, $postfix, "\n"; }