in reply to regex and HTML

could do something like...
/Firstname:(?:\s|<.*?>)*([^&<]+)/s; print "First: $1\n"; /Lastname:(?:\s|<.*?>)*([^&<]+)/s; print "Last: $1\n";
I tried this, it works... It looks for Firstname:, then goes through as many combinations of whitespace characters and html tagged text as it finds. When it runs out of those it grabs all the caharacters till it hits an & or a <

If the name always has an &nbsp; you could do

/Firstname:(?:\s|<.*?>)*(.*?)&nbsp;/s; print "First: $1\n"; /Lastname:(?:\s|<.*?>)*(.*?)&nbsp;/s; print "Last: $1\n";
Name is in $1
                - Ant