if coursename is a "full" match to something it shouldn't return a partial match
instead of sorting by entries, sort by coursename length then entries?
maybe ignore length of the mapname ?
sort by length of mapname excluding anything before '(', and '(' and ')' themselves
would this require coursenames to be unique?