When you try and match for the pattern, you are checking for zero or at least one occurance of any alphanum, so even if there is nothing after "<BusinessNames" the match still would not fail.
Second even if you tried to print out $str2Brepl the regex that you wanted to catch inside the (.*)would not be reflected as expected. You need to be assigning $str2Brepl as equal to $1 ...
$str2Brepl = $1;
gopher