vim: Cleanup word matching code

**Don't merge it yet!** It requires review from people that actually know the Vim syntax :)
I've looked into Vim's source, and `END` is caseless:

    do_augroup(arg, del_group)
        char_u	*arg;
        int	del_group;
    {
        …
        else if (STRICMP(arg, "end") == 0)   /* ":aug end": back to group 0 */
            current_augroup = AUGROUP_DEFAULT;