Necesito la forma Groovy de hacer sustituciones parciales de archivos

Tengo un archivo que necesito modificar. La parte que necesito modificar (no todo el archivo) es similar a las propiedades que se muestran a continuación. El problema es que solo necesito reemplazar parte del "valor", el "ConfigurablePart" si así lo desea. Recibo este archivo así que no puedo controlar su formato.

alpha.beta.gamma.1 = constantPart1ConfigurablePart1
alpha.beta.gamma.2 = constantPart2ConfigurablePart2
alpha.beta.gamma.3 = constantPart3ConfigurablePart3

Hice este trabajo de esta manera, aunque sé que es realmente malo.

def updateFile(String pattern, String updatedValue) {
    def myFile = new File(".", "inputs/fileInherited.txt")
    StringBuffer updatedFileText = new StringBuffer()
    def ls = System.getProperty('line.separator')
    myFile.eachLine{ line ->
        def regex = Pattern.compile(/$pattern/)
        def m = (line =~ regex)
        if (m.matches()) {
            def buf = new StringBuffer(line)
            buf.replace(m.start(1), m.end(1), updatedValue)
            line = buf.toString()
        }
        println line
        updatedFileText.append(line).append(ls)
    }
    myFile.write(updatedFileText.toString())
}

El patrón pasado se requiere para contener un grupo que se sustituye en el StringBuffer. ¿Alguien sabe cómo se debe hacer esto realmente en Groovy?

EDITAR - para definir el resultado esperado

El archivo que contiene las líneas de ejemplo debe actualizarse de modo que el "ConfigurablePart" de cada línea se reemplace con el texto actualizado que se proporciona. Para mi solución fea, necesitaría llamar al método 3 veces, una vez para reemplazar ConfigurablePart1, una vez para ConfigurablePart2 y finalmente para ConfigurablePart3. Probablemente hay un mejor enfoque para esto también !!!

*ACTUALIZADO - Responda que hizo lo que realmente necesitaba *

En caso de que otros lleguen a un problema similar, las mejoras en el código maravilloso que pregunté se reflejan mejor en la respuesta aceptada. Sin embargo, para mi problema que no resolvió del todo mis problemas. Como necesitaba sustituir solo una parte de las líneas coincidentes, necesitaba usar referencias y grupos. La única forma en que podía hacer este trabajo era definir un regEx de tres partes como:

(.*)(matchThisPart)(.*)

Una vez hecho esto, pude usar:

it.replaceAdd(~/$pattern/, "\$1$replacement\$3")

Gracias a las dos respuestas, ¡cada una me ayudó mucho!

Respuestas a la pregunta(2)

Su respuesta a la pregunta