Known issue. OCaml's $ only matches LF. OCaml's philosophy on the subject is that when you read a file, all line ends should be converted to LF, so you never work with other line ends in code. WeiDU does not do this, and specifically uses CRLF in places, resulting in this issue.
I've mentioned it before, but I've been thinking of attempting to resolve this by reading everything into LF, writing into native line ends and transparently converting all not-LFs in match-regexps to LF. Reading stuff into LF breaks backward-compatibility unless you also do something about regexps that are matched against the buffer contents. I'm just not sure it's sufficiently robust.