It is a string of characters yes, but it isn’t a String (i.e. a java.lang.String) so you don’t have to trick the interpreter to ignore the escapes by double escaping. If you were defining this String inside of code (e.g. in rules or Java code) you would probably have to double escape. But since this is a file read in by code single escapes is all you need.
The “-” character is a special character in regular expressions, usually when the items are in brackets (e.g. [0-9]). The Regex tester I used was for JavaScript, not the library used by openHAB, so I don’t know for sure if openHAB can handle it unescaped. The JavaScript Regex does required it be escaped. The “:” is a similar special character in some contexts (e.g. [:upper:]). It worked without escaping it for JavaScript, perhaps it needs to be escaped for openHAB though.
You can bump up the logging on the serial binding using the logback.xml. See the example at the bottom of the zwave binding wiki page for an example of how to bump up the logging and shunt the statements to its own file. However, I think the bindings that do use transforms use openHAB’s transformation service as opposed to implementing their own, so you might have better luck switching to the logback-debug.xml file which will bump up the logging in openHAB core.
Finally, you might simplify your regex. Since the line you care about is the only one with “kWh” on it this one would work too.
.*\((.*)\*kWh\)
It lets you skip over dealing with whether you need to escape the “-” or “:” entirely.