$re = '/<script(?!\stype="application\/ld\+json")[^>]*>(.*?)<\/script>/mis';
$str = '<script type="text/javascript">document.getElementById("x").innerHTML = "xyz";</script>
<script type="application/javascript">document.getElementById("x").innerHTML = "xyz";</script>
<script>document.getElementById("x").innerHTML = "xyz";</script>
<script type="application/ld+json">{
"@context": "http://schema.org/",
"@type": "Article",
"name": "Some JSON-LD stuff"
}</script>
<SCRIPT TYPE="TEXT/JAVASCRIPT">DOCUMENT.GETELEMENTBYID("X").INNERHTML = "XYZ";</SCRIPT>
<SCRIPT TYPE="APPLICATION/JAVASCRIPT">DOCUMENT.GETELEMENTBYID("X").INNERHTML = "XYZ";</SCRIPT>
<SCRIPT>DOCUMENT.GETELEMENTBYID("X").INNERHTML = "XYZ";</SCRIPT>
<SCRIPT TYPE="APPLICATION/LD+JSON">{
"@CONTEXT": "HTTP://SCHEMA.ORG/",
"@TYPE": "ARTICLE",
"NAME": "SOME JSON-LD STUFF"
}</SCRIPT>';
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