moji char predicates

This is a rebased version of PR #8110, addressing issue #5939.
cc @stevengj @ivarne
I think you accidentally deleted some changes in a merge....