I can't say I read back through this thread any, but I would imagine it should be taken one step further.
(?<!dark\s*)
Sorry, I don't know what it means. I just copy-paste the code from '(?<!fe)male' parts
No worries. The < means look backwords. The \s means black space. Without the \s DarkElf is treated as different from Elf, but Dark Elf is not.