$re = '/(.*?)(filter: {[^}]*})(.*)/m';
$str = '# input
query: "\\n mutation deepCopyIxWithKm($creator: String!, $sourceTenant: String!, $targetTenant: String!, $assetId: String!, $deepCopyKm: Boolean!) {\\n deepCopyIx(\\n creator: $creator\\n targetTenantId: $targetTenant\\n assetId: $assetId\\n sourceTenantId: $sourceTenant\\n isDeepCopyKM: $deepCopyKm\\n ) {\\n ix {\\n id\\n }\\n }\\n}\\n "
# expected output
{"query":"query OpName { itemCollection (filter: { text: "aa aa aa", text2: "aa aa"}){ group { slug text text2 } } }"}';
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