v <- "((2-x+3)^2+(x-5+7)^10)^0.5"
x <- grepl("^", v, fixed=TRUE)
while(x) {
v <- sub("(\\(((?:[^()]++|(?1))*)\\))\\^(\\d*\\.?\\d+)", "pow(\\2, \\3)", v, perl=TRUE);
x = grepl("^", v, fixed=TRUE)
}
v
diA8LSAiKCgyLXgrMyleMisoeC01KzcpXjEwKV4wLjUiCnggPC0gZ3JlcGwoIl4iLCB2LCBmaXhlZD1UUlVFKQp3aGlsZSh4KSB7Cgl2IDwtIHN1YigiKFxcKCgoPzpbXigpXSsrfCg/MSkpKilcXCkpXFxeKFxcZCpcXC4/XFxkKykiLCAicG93KFxcMiwgXFwzKSIsIHYsIHBlcmw9VFJVRSk7Cgl4ID0gZ3JlcGwoIl4iLCB2LCBmaXhlZD1UUlVFKQp9CnY=