Регулярные выражения с повторяющимися символами
Мне нужно написать регулярное выражение, которое может обнаружить строку, которая содержит только символы x, y и z, но где символы отличаются от своих соседей.
Вот пример
xyzxzyz = Pass
xyxyxyx = Pass
xxyzxz = Fail (повторяется x)
zzzxxzz = Fail (соседние символы повторяются)
Я думал, что это будет работать ((x | y | z)?) *, Но, похоже, не работает. Какие-либо предложения?
РЕДАКТИРОВАТЬ
Обратите внимание, я ищу ответ, который не позволяет заглядывать в будущее или смотреть за операциями. Допускаются только операции чередования, объединения, группировки и закрытия.