As Derek Holt suggested in a comment, it seems Thurston was indeed thinking of word acceptors that returned normal forms for elements of automatic groups. From a 1989 research report of his titled [Groups, tilings and finite state automata:][1] (pg. 41) > A good example is the Unix utility `egrep`. The word acceptor for Z, for instance, could be specified by the regular expression `a*|A*` where the symbol `*` denotes zero or more repetitions of the preceding object, and the symbol `|` means ‘or’. The command `egrep '^a*|A*$'` prints out all lines of its inputs which are accepted by WA $\dots$ He goes on in page 42: > For instance, a word acceptor which accepts only words in reduced form for the free group $\langle ab|\rangle$ is illustrated in 11.3. The corresponding `egrep` command is `egrep '^(b+|B+)?((a+|A+)(b+|B+))*(a+|A+)?$'` $\dots$ With a text file of input one can easily check that these commands are the correct word acceptors. [1]: http://timo.jolivet.free.fr/docs/ThurstonLectNotes.pdf