Wyrażenia regularne z powtarzającymi się znakami

Muszę napisać wyrażenie regularne, które może wykryć ciąg zawierający tylko znaki x, y i z, ale gdzie znaki różnią się od swoich sąsiadów.

Oto przykład

xyzxzyz = Pass

xyxyxyx = Pass

xxyzxz = Niepowodzenie (powtórzenie x)

zzzxxzz = Fail (sąsiednie znaki są powtarzane)

Myślałem, że to zadziała ((x | y | z)?) *, Ale nie działa. Jakieś sugestie?

EDYTOWAĆ

Proszę zauważyć, że szukam odpowiedzi, która nie pozwala na patrzenie w przyszłość lub za operacje. Jedyne dozwolone operacje to alternacja, konkatenacja, grupowanie i zamykanie

questionAnswers(3)

yourAnswerToTheQuestion