Dúvida com REGEX Java?

Tenho a seguinte String?

123|XXXXXX|567|ABC,

Tenho a seguinte regex

"^(?!\\d+\\|XXXXXX\\|\\d+\\|\\w+)";

Em teoria, se altero a minha String para 123|YYYYY|567|ABC, ao fazer o matches, não deveria retornar true não?

String s1 = “123|XXXXXX|567|ABC”;
String s2 = “123|YYYYYY|567|ABC”;
String regex = “^(?!\d+\|XXXXXX\|\d+\|\w+)”;
System.out.println(s1.matches(regex)); //Retorna False
System.out.println(s2.matches(regex)); // Retorna False

O que eu preciso na verdade é q sempre q minha String for 123|XXXXXX|567|ABC retorne false, qualquer valor diferente de X retorne true

Olá,
remove o ?! e nega o resultado.
Vai retornar true com X e false com outra coisa, mas é só negar o resultado:
!s1.matches(regex)
é mais fácil doq fazer na regex.