1
@u=qw!(2/3) (4/9) 24 sqrt(4/10) (4/10) 2/1 4!;@b=qw(** / - * +);sub i{my$s=shift;if($s=~/U/){$x=$s,$x=~s/U/$_/,i($x)for@u}elsif($s=~/B/){$x=$s,$x=~s/B/$_/,i($x)for@b}else{($e=eval$s)&&($expr{$e}=$s)}}i("(((UBU)BU))BU");i("(UBU)B(UBU)");($_="$_: $expr{$_}\n"),s~24~4!~g,s!2/3!sqrt(.4')!g,s!4/9!.4'!g,s!4/10!.4!g,s!2/1!sqrt(4)!g,print for 1..100;