in reply to Pattern matching with \t

You're making the problem more complex than it needs to be. , IMO. Since tab is your delimiter, use that effectively, then break down your solution with simple whitespace stripping:
my ($id, $desc, $num1, $num2 ) = split /\t/; $id =~ s/(\s*)$//; $desc =~ s/(\s*)$//;
If you have a single number line, $num2 should be zero. A line with two numbers should have both $num1 and $num2 set.

-----------------------------------------------------
Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain
"I can see my house from here!"
It's not what you know, but knowing how to find it if you don't know that's important