I see two problems:
You're using Perl's syntax (dollar sign) to dereference the positional match. Python uses \, not $.
Your backslash in "-\$1 is being interpreted by the Python compiler, and is effectively removed before re.sub sees it.
Either using a raw string (as noted in the comments to your question), or escaping the backslash (by double-backslashing), should fix it:
myterm = re.sub(r"\((\d+)\)", r"-\1", myterm)
or
myterm = re.sub(r"\((\d+)\)", "-\\1", myterm)
Tested and confirmed:
import re
myterm = '(1234)'
# OP's attempt:
print re.sub(r"\((\d+)\)", "-\$1", myterm)
# two ways to fix:
print re.sub(r"\((\d+)\)", r"-\1", myterm)
print re.sub(r"\((\d+)\)", "-\\1", myterm)
prints:
-\$1
-1234
-1234
r"-\1"insteadr"-\1"and no $.