¿Cómo usar Regex en Java para hacer coincidir patrones?

He leído la documentación y varios tutoriales en línea, pero todavía estoy confundido sobre cómo funciona la expresión regular en Java. Lo que estoy tratando de hacer es crear una función que tome un argumento de tipo cadena. Luego quiero comprobar si la cadena pasada contiene algún carácter distinto de MDCLXVIivxlcdm. Entonces, por ejemplo, la cadena "XMLVID" debería devolver falso y "ABXMLVA" debería devolver verdadero.

public boolean checkString(String arg)
{
     Pattern p = Pattern.complile("[a-zA-z]&&[^MDCLXVIivxlcdm]");
     Matcher m = p.matcher(arg);
     if(m.matches())
          return true;
     else
          return false;
 }

Cuando paso, "XMLIVD", "ABXMLVA" y "XMLABCIX", todos devuelven falso. ¿Qué estoy haciendo mal? Cualquier ayuda será apreciada.

Respuestas a la pregunta(3)

Su respuesta a la pregunta