No parece que haya mucha solución, al menos con el JDK estandar (aquí está el bug reconocido y sin resolver):
http://bugs.sun.com/bugdatabase/view...bug_id=6337993
Parecer que las expresiones regulares usan recursividad y según lo que uses... llegas al límite.
Según lo que haya que reconocer, puede que una solución fuese no usar expresiones regulares sino teoría de automatas fínitos... leyendo carácter a carácter. Por que para ficheros muy grandes, no veo las expresiones regulares como solución.
S!