How can I use the or operator while not allowing repetition? In other words the regex:
or
(word1|word2|word3)+
will match wo
wo
You could use negative lookaheads:
^(?:word1(?!.*word1)|word2(?!.*word2)|word3(?!.*word3))+$
See it working online: rubular