Regex para coincidir solo hasta la primera aparición de la clase

Estoy buscando construir una expresión regular que me ayude a identificar la primera vez que se produce una coincidencia.

Mi regex actual es"(.*)[Cc][Aa][Ss][Ee][^a-zA-Z\\d]*(\\d\\d*)[^a-zA-Z\\d]*(.*)"

Lo que estoy tratando de hacer es encontrar si la cadena de entrada contiene la palabra "caso" (no distingue mayúsculas y minúsculas), seguida de cualquier número de caracteres especiales, seguida de un número; Quiero recuperar 3 partes del texto. Di que mi cadena de entrada es"RE: FW: case:-1234: there is some description" Usando esta expresión regular, puedo recuperar,"RE: FW: ", "1234", "there is some description".

Esto está bien, pero si mi cadena de entrada es"RE: FW: case:-1234: This is in reference to case 789 reopening" Entonces mi regex regresa,"RE: FW: case:-1234: This is in reference to", "789", "reopening".

Lo que me gustaría conseguir es"RE: FW: ", "1234", "This is in reference to case 789 reopening".

Soy un novato con expresiones regulares, por lo que cualquier ayuda es muy apreciada.

Nota: Estoy trabajando en una herramienta basada en Java, por lo que la expresión regular compatible con Java estaría bien.

Respuestas a la pregunta(2)

Su respuesta a la pregunta