The only way to put in a single quote into a string started with a single quote is to escape it. Thus, both raw and regular string literals will allow escaping of quote characters when you have an unescaped backslash followed by a quote character. Because of the requirement that there must be a way to express single (or double) quotes inside string literals that begin with single (or double) quotes, the string literal '\' is not legal, whether you use a raw or regular string literal.
To get any arbitrary string with an odd number of literal backslashes, I believe the best way is to use regular string literals. This is because trying to use r'\\' will work, but it will give you a string with two backslashes instead of one:
>>> '\\' # A single literal backslash. '\\' >>> len('\\') 1 >>> r'\\' # Two literal backslashes, 2 is even so this is doable with raw. '\\\\' >>> len(r'\\') 2 >>> '\\'*3 # Three literal backslashes, only doable with ordinary literals. '\\\\\\' >>> len('\\'*3) 3
This answer is only meant to complement the other one.