I looked at ml.lex and I think I understsand the bug in ml.lex. The problem
is that {ws} matches the empty string, hence the lexer switches to from the
<S> state to the <F> state. Then in the <F> state only the final rule works.
The rule on page 4 says you must have at least 1 `formatting characters' to
go into this state.
Just to be concrete, the input causing the bad message is
"abc\5xyz"