Separar palavras de uma String sem delimitador

Pessoal, estou tentando separar uma palavra de uma string através de uma expressão regular, mas não está dando certo. A string é numeroCPFContribuinte , resultado: “numero”, “CPF”, “Contribuinte”.
Palavras que são separadas em até dois elementos eu consigo (Ex: nome, Nome, nomeComposto, numeroCPF, CPF) com a expressão:

public static List converterCamelCase(String original) {

        String[] arraySplit = original.split("(?<=[a-z])(?=[A-Z])"); 
         return transformarUpperOrLowerCase(arraySplit); 		

}

O problema e quando vou separar 3 palavras e no meio tem uma sigla, que no caso é CPF (numeroCPFContribuinte).
Será que consigo fazer isso com expressão regular?