Como usar uma expressão regular para cortar uma string no último espaço dado um determinado tamanho?

Fala pessoal.

Estou criando um app para um exercicio da faculdade, porém estou com uma certa dificuldade para acertar na expressão regular usando regex.

A expressão que criei e coloquei dentro do meu methodo split ficou assim:

(\\s+|$)(?<=\\G.{50})

O que isso faz é o seguinte, após eu passar um texto, a expressão considera o último espaço dentro de um range de 50 caracteres.
O resultado ficou correto na primeira posição da minha array de strings, contudo a segunda posição eu infelizmente obtive o resto do texto sem continuar cortando conforme eu esperava.

Caso eu use apenas:

(?<=\\G.{50})

Eu consigo obter o resultado cortando todo o texto a cada 50 caracteres, contudo, se uma palavra for grande e estiver dentro do range, a palavra é cortada ao meio, o que é considerado um resultado errado.

Alguém que manja de regex em java poderia me dar uma mão?

O exercício obrigatoriamente requer o uso de expressões regulares; Eu poderia fazer o exercicio de outra forma, mas o objetivo não seria esse.

Alguém saberia me ajudar com isso?