Регулярные выражения с повторяющимися символами

Мне нужно написать регулярное выражение, которое может обнаружить строку, которая содержит только символы x, y и z, но где символы отличаются от своих соседей.

Вот пример

xyzxzyz = Pass

xyxyxyx = Pass

xxyzxz = Fail (повторяется x)

zzzxxzz = Fail (соседние символы повторяются)

Я думал, что это будет работать ((x | y | z)?) *, Но, похоже, не работает. Какие-либо предложения?

РЕДАКТИРОВАТЬ

Обратите внимание, я ищу ответ, который не позволяет заглядывать в будущее или смотреть за операциями. Допускаются только операции чередования, объединения, группировки и закрытия.

Ответы на вопрос(3)

Ваш ответ на вопрос