Hi!
Actually you don't have to check for "< 0", because there can't be a minus sign. \d only matches the digits 0 through 9.
Also, it is possible to do the "< 256" check in the regex.
It gets a bit more complex then, but well possible:
(([01]?\d\d?|2[0-4]\d|25[0-5])\.){3}([01]?\d\d?|2[0-4]\d|25[0-5])
This is from my article about IP address matching with regular expressions.
( regex-for.com/ip-addresses/ )