PowerShell, 92 bytes
I think there's definitely some room for optimization here; A lot of the bytes are just there to handle the cases with the leading "\d "
$t=1;-split$args|%{$t*=$_-replace'\(','+('-creplace'[A-Z][a-z]*','+1'-replace'_','*'|iex};$t