Regex para eliminar el patrón de caracteres repetidos en una cadena

Tengo una cadena que puede tener un patrón de caracteres repetido, p. Ej.

'xyzzyxxyzzyxxyzzyx'

Necesito escribir una expresión regular que reemplace dicha cadena con su patrón repetido más pequeño:

'xyzzyxxyzzyxxyzzyx' becomes 'xyzzyx',

'abcbaccbaabcbaccbaabcbaccba' becomes 'abcbaccba'