my $sp = ".A(~(B & C & ( D | (E & F) ))),"; ## $pin = string between . and ( if ( $sp =~ /\.(.*?)\(/ ) { $pin = $1; } if ( $sp =~ /\((.*?)\)/ ) { $sig = $1; }