RegEx para dividir camelCase o TitleCase (avanzado)

Encontre un Brillante RegEx para extraer la parte de una expresión camelCase o TitleCase.

 (?<!^)(?=[A-Z])

Funciona como se esperaba:

value -> valuecamelValue -> camello / ValorTitleValue -> Título / Valor

Por ejemplo con Java:

String s = "loremIpsum";
words = s.split("(?<!^)(?=[A-Z])");
//words equals words = new String[]{"lorem","Ipsum"}

Mi problema es que no funciona en algunos casos:

Caso 1: VALOR -> V / A / L / U / ECase 2: eclipseRCPExt -> eclipse / R / C / P / Ext

En mi opinión, el resultado debería ser:

Caso 1: VALORCase 2: eclipse / RCP / Ext

n otras palabras, dados n caracteres en mayúscula:

si los caracteres n son seguidos por caracteres en minúscula, los grupos deben ser: (n-1 caracteres) / (n-ésimo carácter + caracteres más bajos)si los n caracteres están al final, el grupo debería ser: (n caracteres).

¿Alguna idea sobre cómo mejorar esta expresión regular?

Respuestas a la pregunta(9)

Su respuesta a la pregunta