Awk: looping problem!

I am having a problem with awk when I run it with a loop. It works perfectly when I echo a single line from the commandline. For example:

echo 'MFG009 9153852832' | awk '$2 ~ /^[0-9][0-9][0-9][0-9][0-9]0-9][0-9][0-9][0-9][0-9]$/{print $2}'

The Awk command above will print field 2 if field 2 matches 10 digits, but when I run the loop below in a script, nothing get printed.

Phonelist.txt:
MFG003 9159123578,009
MFG008 948354259398
MFG007 9038931566,006
MFG003 9159123578
MFG008 9483542593
MFG007 9038931566
GWI022 9048744185
MFG002 9194824190
MFG004 9152217465
MFG009 9183920264
MFG009 9153852832

cat phonelist.txt | while read line
do
echo $line | awk '$2 ~ /^[0-9][0-9][0-9][0-9][0-9]0-9][0-9][0-9][0-9][0-9]$/{print $2}'
done

use vi or cat -vT to show the file nonprinting characters.
i think here is the reason.

be careful typing...

awk '$2 ~ /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/{print $2}'

Instead of typing [0-9] 10 times, isnt there something like this ?

'/^[0-9]\{10\}$/{print $2}'

Vino

There were ^M characters at the end of each line. After removing them the script worked perfectly. Thank you for your help!

not for all awk's..... Solaris 8 doesn't support it, old gawk doesn't either.