From: Tony De Date: 2008-03-29T15:45:50+09:00 Subject: Regular Expression help On to my next learning exercise. As I parse a file I need to pull an IP address out a line. Now I thought a regular expression would be the ticket, but it's giving me a problem. The follow line is an example string I need to pull one of two IP address out of: (they are not always formed the same) Received: from mmds-111-19-22-30.twm.ca.internet.net (HELO ?192.168.1.2?) (222.222.222.22) I need that last IP address. Now the problem is that I can't always count on it being enclosed in paren's. Although I can expect the right paren to always be there. So here's my regex exp: sourceip = line.scan(/\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b/) And as you might expect, it is pulling both IP addresses. Is there a way I can adjust the expression to grab the second IP testing for the ")" or is there another method I can use? Short of dissecting the entire string backwards and testing whether I have a number or a char, decimal and at most 3 chars from it, etc? tonyd -- Posted via http://www.ruby-forum.com/.