Honestamente, sua função pode "fazer uma coisa", mas, como você mesmo declarou
Eu poderia começar a dividir o regex em várias funções,
o que significa que o seu código regular faz muitas coisas. E eu acho que poderia ser dividido em unidades menores, individualmente testáveis. No entanto, se essa é uma boa ideia, não é fácil responder (especialmente sem ver o código real). E a resposta correta pode ser "sim" ou "não", mas "ainda não, mas da próxima vez você precisará alterar algo nesse registro".
mas sinto que realmente perderia a legibilidade dessa maneira, pois estou trocando de idioma
E este é o ponto principal - você tem um pedaço de código escrito na linguagem normal . Essa linguagem não fornece bons meios de abstração em si (e não considero "grupos de captura nomeados" como um substituto para funções). Portanto, a refatoração "no idioma normal" não é realmente possível, e a junção de expressões regulares menores com o idioma do host pode não melhorar a legibilidade (pelo menos, você sente isso, mas tem dúvidas, caso contrário não teria postado a pergunta) . Então aqui está o meu conselho
mostre seu código para outro desenvolvedor avançado (talvez em /codereview// ) para garantir que outras pessoas pensem na legibilidade da maneira que você faz. Esteja aberto à idéia de que outras pessoas podem não encontrar um registro de 100 linhas tão legível quanto você. Às vezes, a noção de "não é facilmente quebrável em pedaços menores" pode ser superada apenas por um segundo par de olhos.
observe a real capacidade de evolução - a sua brilhante experiência de registro ainda parece tão boa quando novos requisitos chegam e você precisa implementá-los e testá-los? Enquanto o seu reg exp funcionar, eu não o tocaria, mas sempre que algo precisa ser mudado, reconsideraria se era realmente uma boa ideia colocar tudo nesse grande bloco - e (sério!) Repensar se dividir em pedaços menores não seriam uma opção melhor.
observe a capacidade de manutenção - você pode depurar efetivamente o reg exp na forma atual muito bem? Especialmente depois que você precisa alterar alguma coisa e agora seus testes dizem que algo está errado, você tem um depurador reg exp ajudando você a encontrar a causa raiz? Se a depuração for difícil, isso também seria uma ocasião para reconsiderar seu design.