<!DOCTYPE html>
<title></title>
<script>
var s = '2 + (( a + b * c) / d ) * ( e - f ) + 1';
var r = /^(.*?)\(([^\(\)]+)?\)(.*?)$/;
var k;
var cnt = 0;
document.write (s, '<br>');
while (k = r.exec (s)) {
k[2] = '$' + cnt++;
k.shift ();
s = k.join ('');
document.write (s, '<br>');
}
</script>