RFC1918 defines private IPv4 addresses as those that fall within any of the following ranges:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 -
In Python 3.3+ (you did not specify a version, nor why regular expressions are a requirement, so I’ll put this here for completeness), you can:
import ipaddress
addr_string = # string with your IP address
try:
addr = ipaddress.IPv4Address(addr_string)
except ValueError:
raise # not an IP address
if addr.is_private:
pass # is a private address
See also: ipaddress module documentation