title: What exactly do "u" and "r" string prefixes do, and what are raw string literals?
body: <p>While asking <a href="https://stackoverflow.com/questions/2081622/python-raw-strings-and-unicode-how-to-use-web-for-input-as-regexp-patterns">this question</a>, I realized I didn't know much about raw strings. For somebody claiming to be a Django trainer, this sucks.</p>
  
  <p>I know what an encoding is, and I know what <code>u''</code> alone does since I get what is Unicode.</p>
  
  <ul>
  <li><p>But what does <code>r''</code> do exactly? What kind of string does it result in?</p></li>
  <li><p>And above all, what the heck does <code>ur''</code> do?</p></li>
  <li><p>Finally, is there any reliable way to go back from a Unicode string to a simple raw string?</p></li>
  <li><p>Ah, and by the way, if your system and your text editor charset are set to UTF-8, does <code>u''</code> actually do anything?</p></li>
  </ul>