Try this. I didn't have much time for testing but it seems OK to me.
import re
def main():
pattern = r'pow\((\w+),\(?(-?\w+)\)?\)'
expr0 = 'p_neg1_1_n/pow(deltax,-4) - 4*p_0_1_n/pow(deltax,4)'
expr1 = 'p_neg1_1_n/pow(deltax,(-4)) - 4*p_0_1_n/pow(deltax,(4))'
print re.sub(pattern , r'\1^\2', expr0)
print re.sub(pattern , r'\1^\2', expr1)
if __name__ == "__main__":
main()