I am using `\W{}\W.format(sigs)` to find out some variables and replace them with something else. After replacement, I want to restore the same non-alphanumeric characters which existed earlier.

When I do this:

```
sigs = 'v__a'
CondStr = "(1 & v__a) == 0"
CondStr = re.sub("\W{}\W".format(sigs), "\Wz3Sigs\W", CondStr)
print CondStr

```

As expected I get output as `(1 &\Wz3Sigs\W == 0`, while actually I want output as `(1 & z3Sigs) == 0`

How can I achieve that?