あなたのJSONにはJSON_ERROR_SYNTAXエラーがあります
オプション A最初に  使用する必要stripslashesがありますが、バックスラッシュが失われます\
$config = '{"regex": "/font-size:\s*(?:.*);/i"}';
$config = json_decode(stripslashes($config),true);
var_dump($config);
出力
array
  'regex' => string '/font-size:s*(?:.*);/i' (length=22)
オプション B独自の関数を作成する
$config = '{"regex": "/font-size:\s*(?:.*);/i"}';
var_dump(splitJSONObject($config));
出力
array
  'regex' => string '/font-size:\s*(?:.*);/i' (length=23)
使用する関数 (配列への分割のみ)
function splitJSONObject($json) {
    $json = str_replace(array("\\\\","\\\""), array("\","""), $json);
    $parts = preg_split("@(\"[^\"]*\")|([\[\]\{\},:])|\s@is", $json, - 1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
    foreach ( $parts as $index => $part ) {
        if (strlen($part) == 1) {
            switch ($part) {
                case "[" :
                case "{" :
                    $parts[$index] = "array(";
                    break;
                case "]" :
                case "}" :
                    $parts[$index] = ")";
                    break;
                case ":" :
                    $parts[$index] = "=>";
                    break;
                case "," :
                    break;
                default :
                    return null;
            }
        } else {
            if ((substr($part, 0, 1) != "\"") || (substr($part, - 1, 1) != "\"")) {
                return null;
            }
        }
    }
    $json = str_replace(array("\",""","$"), array("\\\\","\\\"","\\$"), implode("", $parts));
    return eval("return $json;");
}