If you're wondering about the SEO difference between dashes and underscores in URLs, Google at least treats dashes as spaces and underscores as part of the phrase. Here is an article about it. (Another method that works just as well as dashes is the plus sign. If I'm not mistaken it is the default for many URL-encoders).
This topic about which character to use for wordspacing is confusing and discussed at length on many blogs. It gets even more confusing when Google recently proclaimed that it will now treat underscores as wordseperators, but it appears it hasn't happened.
If you're wondering about how to do the mod_rewriting from underscores to hyphens, then there is post on AskApache about that.
About capitalization, the URL path should probably be in lowercase at it is easier to type, but on the other hand, it has also been shown that capitalization of your URL path improves readability, so that is something to consider as well. Also, some claim that it matters to search engines while others claim it doesn't, further more, it seems different search engines treats it differently.
Hostnames are case-insensitive but adding capitalization may increase readability in some cases, otherwise there is no difference. If you are worried about capitalization in meta-data, here is an article about that. Nonetheless, you can use flags when rewriting URLs to be case insensitive.
If you're wondering about the typographical difference between dashes and hyphens, there is quite a difference there. In this context dashes is probably the right way to go.