title: Proper way to de-escape a string with an escaped colon ":" in python 3.6
body: <p>I am attempting to write a python script that converts a .properties file (as read by Ant), and converts the result into a dictionary, mapping keys to values.</p>
  
  <p>As part of the process (using configparser.RawConfigParser), I discovered that .properties files have their values escaped, and I decided to follow the top result to try and de-escape them (see <a href="https://stackoverflow.com/q/1885181/936083">How do I un-escape a backslash-escaped string in python?</a>).  As I am using python 3 (specifically, python 3.6), I use <code>value = value.encode('utf-8').decode('unicode_escape')</code> to un-escape the string.</p>
  
  <p>This was all working well, until I came across a Windows path, which was escaped like <code>r'C\:\\Path\\to\\something'</code>, note the colon is escaped.  While attempting to resolve this, I decided to consult <a href="https://docs.python.org/3/library/re.html#re.escape" rel="nofollow noreferrer">the documentation</a>, only to find that in the latest python (3.7), re.escape does NOT escape <code>:</code>.  However, python 3.6 does.  This leads me to start questioning language compatibility:</p>
  
  <ol>
  <li><p>Does <code>r'\:'.encode('utf-8').decode('unicode_escape')</code> return <code>':'</code> or <code>r'\:'</code> in python 3.7?</p></li>
  <li><p>How can I handle de-escaping colons in python 3, without needing to worry about version?  If I follow up the decode with <code>value = value.replace(r'\:', ':')</code>, I don't want it to erroneously replace values.</p></li>
  <li><p>Is this a bug that was fixed in python 3.7?</p></li>
  </ol>