Como usar o Regex em Java para correspondência de padrões?

Eu li a documentação e vários tutoriais on-line, mas ainda estou confuso sobre como o regex funciona em Java. O que estou tentando fazer é criar uma função que aceita argumentos do tipo string. Então eu quero verificar se a string passada contém qualquer caractere diferente de MDCLXVIivxlcdm. Por exemplo, a string "XMLVID" deve retornar false e "ABXMLVA" deve retornar true.

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;
 }

Quando eu passar, "XMLIVD", "ABXMLVA" e "XMLABCIX", todos retornam false. O que estou fazendo de errado? Qualquer ajuda será muito apreciada.

questionAnswers(3)

yourAnswerToTheQuestion