permit whitespace in topic, otherwise sanitize to _