in reply to boundries \b \B

\b will match between a \w character and a \W character and \B will match between two \w characters or between two \W characters.

I have tried print if /\B.\d+.\d+\s+.?\s+\B/; print if /\B.\d+.\d+\s+.?\s+\B/FA; print if /\B.\d+\s+\w+\B/FA;

Your examples start off with \B.\d+ which says match at a \B boundary then match any character (except newline) then match one or more digits.    So if the any character before the digits is a \w character then there must be at least two \w characters before the digits or if the any character before the digits is a \W character then there must be at least two \W characters before the digits.

The only strings in your example that will match that pattern are "c10" or "0t2" or "2d1".