Pattern Regex

Exemplo:

public class PatternTest {

     public static final Pattern TEM_DOG = Pattern.compile(" *dog.*");
     
     public static boolean avaliaTEM_DOG(String comando){
          Matcher m = TEM_DOG.matcher(command);
	  return m.matches();
     }

     public static void mani(String[] args){
          
          System.out.prinln(avaliaTEM_DOG("  dog "));
          
     }

}

Este exemplo que citei avalia se determinado comando é aceito pelo Pattern " dog.".

Gostaria de saber como faço para avaliar algo mais “complexo”, por exemplo:

Gostaria que ele avaliasse se determinada expressao sempre tem UMA das seguintes opcoes: OPP ou OQQQ ou TT.

Expressões que seriam acetias:
“test:OPP qualquer coisa”
“test:OQQQ qualquer outra coisa”
“test:TT qq coisa”
Observe que “test:” eh obrigado a estar no início, no caso.

Expressões que não seriam aceitas:
“test:O qq coisa” errado pq não tem nenhuma das opções.
“test:OQ qualquer coisa” errado pq não tem nenhuma das opções.
“test:OP” errado pq não tem nenhuma das opções, OP não é uma das opções!!!

Ufa… espero ter sido claro na minha dúvida. Se não fui muito claro favor avisar em que ponto =]

Encontrei a solução :slight_smile: pra quem quiser conferir, seria algo da forma:

...compile("test:(OPP|OQQQ|TT)( +.*|)");