$re = '~ \'cKey\d+\' # search for cKey followed by a digit
.+? # match everything lazily
(\"|\') # up to a single/double quote (capture this)
(?P<string>.*?) # match everything that is not a single / double quote
\1 # followed by the previously captured group~x';
$str = '$data = array(
\'cKey1\' => "dsfaasdfasdfasdfasdf",
\'cKey2\' => "asdfasdfasdfadsfasdf",
\'cKey3\' => "dsfaasdfasdfasd\'fasdf",
\'cKey4\' => "",
);';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
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 PHP, please visit: http://php.net/manual/en/ref.pcre.php