Generally speaking, un- goes with English words, and in- goes with Latin words. There's a lot of overlap, though, probably because most people don't keep track of the origins of the words they use. have And then there's a-/an- which goes with Greek words, but there are a lot fewer of those in English. These prefixes usually give a word the opposite meaning, while non- usually implies simple negation. I'm sure there are logical terms that are used to differentiate these senses, but I've forgotten them.