Решение
Вы можете использовать что-то вроде этого:
(?P<first>\d{2,3})\.(?P<second>\d{1,3})\.(?P<third>\d{1,3})\.(?P<fourth>\d{1,3})
Или, если у вас нет поддержки именованной группы захвата, просто используйте:
(\d{2,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})
Это разделит ваши строки на четыре разные группы, каждая из которых содержит один октет ip.
Пример
import re
pattern = r"(?P<first>\d{2,3})\.(?P<second>\d{1,3})\.(?P<third>\d{1,3})\.(?P<fourth>\d{1,3})\n?"
matcher = re.compile(pattern)
ips = """
192.168.1.1
192.168.1.2
"""
result = matcher.findall(ips) # [('192', '168', '1', '1'), ('192', '168', '1', '2')]