$re = '/"(?<!\')(.*?)(?<!\\\\)(?<!\')"/m';
$str = '$str = "this is something";
$str = "this is {$another}";
$str = "could be {$hello[\'world\']}";
$str = "and $hello[world] another";
$str = "building <div style=\\"width: 100%\\" data-var=\\"{$var}\\"></div>";
$str = \'<elem prop="\' . $var . \'">\';
';
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