Respuestas: no, si.
-
En el script
subject:Javano coincide con nada, porquepattern:[^script]significa "cualquier carácter excepto los dados". Entonces, la expresión regular busca"Java"seguido de uno de esos símbolos, pero hay un final de cadena, sin símbolos posteriores.alert( "Java".match(/Java[^script]/) ); // null
-
Sí, porque la sección
pattern:[^script]en parte coincide con el carácter"S". No está enpattern:script. Como el regexp distingue entre mayúsculas y minúsculas (sin flagpattern:i), procesa a"S"como un carácter diferente de"s".alert( "JavaScript".match(/Java[^script]/) ); // "JavaS"