use strict;
my $str = '~File Type~,~DV Dealer ID~,~Delegate Dealer ID~,~DMS Type~,~Stock Number~,~Vehicle Type~,~Vehicle Status~,~Inventory Date~,~Purchase Date~,~Sold Date~,~VIN~,~Year~,~Make~,~Model~,~Model Number~,~Odometer~,~Exterior Color~,~Exterior Color Code~,~Interior Color~,~Interior Color Code~,~Trim~,~Transmission~,~Cylinder~,~Weight~,~Description~,~Vehicle Style~,~Engine~,~Fuel Type~,~MPG~,~Standard Equipment~,~Factory Accessory Code~,~Factory Accessory Description~,~Factory Accessory Cost~,~Factory Accessory Retail~,~Accessory Code~,~Accessory Description~,~Accessory Cost~,~Accessory Retail~,~Accessory Invoice~,~Package Code~,~Location~,~Certification~,~Certification Number~,~Sales Code~,~Wholesale~,~Accounting Make~,~Open RO Number~,~License Fee~,~Category~,~Invoice~,~Cost Pack~,~Cost~,~Holdback~,~List Price~,~MSRP~,~Internet Price~,~VIN Explosion Year~,~VIN Explosion Make~,~VIN Explosion Model~,~VIN Explosion Trim~,~VIN Explosion Tran Type~,~VIN Explosion Fuel Type~,~VIN Explosion Chrome ID~,~VIN Explosion Engine Size~,~VIN Explosion GVW Range~,~Image Location URL~,~Video Location URL~,~Image Modified Date~';
my $regex = qr/(?P<delim>[^\w\n"\'])(?P<space> ?)(?P<quote>["\'~]).*?(?P=quote)(?P=delim)/p;
if ( $str =~ /$regex/ ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html