Remover comentários programaticamente

olá pessoal, estou tentando remover os comentários de códigos-fonte Groovy programaticamente com o seguinte código:

    public static String removeComments(String sourceCode) {
        String s = sourceCode;
        // remove coments multilinha
        s = s.replaceAll("/\*(?:.|[\n\r])*?\*/", ""); // <-- dando pau
        // remove coments simples
        s = s.replaceAll("//(.)*", "");
        return s;
    }

Funciona, no entanto, dependendo do tamanho do fonte, dá StackOverflow na linha assinalada.
Teria algum meio mais eficaz de se fazer isso?

Obs: comentarios em Groovy são exatamente iguais aos do java.

[]s

Você ta ultrapassando o limite do replace, talvez se vc dividisse sua string num array quando a string tivesse uma determinada quantidade de caracteres e chamando o replace num loop resolveria.