import re
regex = re.compile(r"(?i)^.*\.(.*\.[a-z]{0,3})$", flags=re.MULTILINE)
test_str = ("^((?!.*server.*).)*$\n\n\n\n"
"am.iqos.com\n"
" Exclusive sales - iqos.cz\n"
" testdriveiqos.ru\n"
"ae.iqos.com\n"
"www.iqos.com\n"
"al.iqos.com\n"
"am.iqos.com\n"
"at.iqos.com\n"
"ba.iqos.com\n"
"bezdymu.pl\n"
"bg.iqos.com\n"
"boiler iqos.com\n"
"ca.iqos.com\n"
"calculate.iqosclub.co.uk\n"
"campanie-iqos.ro\n"
"ch.iqos.com\n"
"club.iqos.ro\n"
"club.it.iqos.com\n"
"co.iqos.com\n"
"companion.iqos.co.uk\n"
"comparteelcambio.com\n"
"conoce-iqos.com\n"
"conoceiqos.com\n"
"cr.iqosclub.com\n"
"cvspickup.com\n"
"cy.iqos.com\n"
"cz.club.iqos.com\n"
"cz.iqos.com\n"
"darwin.md\n"
"DCE 2.\n"
"DCE2 - iqos.com\n"
"DCE2 - veev-vape.com\n"
"de.iqos.com\n"
"discover.iqos.gr\n"
"discoveriqos.com\n"
"dk.iqos.com\n"
"do.iqos.com\n"
"ec.myiqos.com\n"
"ee.iqos.com\n"
"enqueteiqos.com\n"
"es.iqos.com\n"
"essayeriqos.com\n"
"facturi.iqos.ro\n"
"Faramentol.ro\n"
"fastdelivery.sto\n"
"foodhouse.md\n"
"futurosinhumo.com\n"
"ganaconpmi.com\n"
"ge.iqos.com\n"
"getinfo.kr\n"
"gr.iqos.com\n"
"gt.iqos.com\n"
"heatnotburn.ro\n"
"heatnotburn.se\n"
"helloiqos.ro\n"
"hk.iqos.com\n"
"hr.iqos.com\n"
"hu.iqos.com\n"
"ic.pmiopen.com\n"
"il.iqos.com\n"
"intelege.iqos.ro\n"
"iqommunity.ro\n"
"iqos-care.nl\n"
"iqos-coach.com\n"
"iqos-on.ro\n"
"iqos-partner.ch\n"
"iqos.by\n"
"iqos.com\n"
"iqos.com (raw excl.\n"
"iqos.com.ar\n"
"iqos.com.co\n"
"iqos.com.cw\n"
"iqos.com.ua\n"
"iqos.id\n"
"iqos.lv\n"
"iqos.ro\n"
"iqos.ro v1.\n"
"iqos.ru\n"
"iqos.ru and shop.iqos.ru (Production) - Consolidated - Deprecated after 2018.11.\n"
"iqos1year.com\n"
"iqos3.es\n"
"iqos3duo.es\n"
"iqosandco.es\n"
"iqosasia.com\n"
"iqosclub.cz\n"
"iqosclub.sk\n"
"iqosclubcanarias.com\n"
"iqoscr.com\n"
"iqosempfehlen.at\n"
"iqosexpert.ch\n"
"iqosinfo.at\n"
"iqositalia.it\n"
"iqosjetzt.com\n"
"iqosnc.com\n"
"iqosphere.jp\n"
"iqosplus.de\n"
"iqospointdevente.com\n"
"iqosprobieren.at\n"
"iqosregistrieren.at\n"
"iqosrent.nl\n"
"iqossvc.kr\n"
"iqostestdrive.ru\n"
"iqostesten.at\n"
"iqosveda.cz\n"
"iqosveda.sk\n"
"iqoswechseln.at\n"
"irefer.co.iqos.com\n"
"irefer.gt.iqos.com\n"
"irefer.my.iqos.com\n"
"it.iqos-boutique.com\n"
"it.iqos.com\n"
"it.veev-vape.com\n"
"jo.iqos.com\n"
"jp.iqos.com\n"
"kontaktai.iqos.lt\n"
"kr.iqos.com\n"
"kw.iqos.com\n"
"kz.iqos.com\n"
"lb.iqos.com\n"
"lil.iqos.ru\n"
"line.iqosphere.jp\n"
"lt.iqos.com\n"
"malaysia.iqos.com\n"
"mc.myiqos.com\n"
"md.iqos.com\n"
"me.iqos.com\n"
"menthol-ban-retail.co.uk\n"
"miasesoriqos.com\n"
"mk.iqos.com\n"
"mx.iqos.com\n"
"my.iqos.com\n"
"nazareth.iqos.co.il\n"
"newcreations.kr\n"
"nl.iqos.com\n"
"nokemuhara.jp\n"
"nuevoiqos3.es\n"
"nz.iqos.com\n"
"ocsg.chat.iqos.jp\n"
"offer.jp.iqos.com\n"
"openinsieme.com\n"
"pe.myiqos.com\n"
"pl.iqos.com\n"
"pmi.23video.com\n"
"probar-iqos.com\n"
"prohibicionmentolado2020.es\n"
"proibicao-mentol2020.pt\n"
"promisiunea.iqos.ro\n"
"provaiqos.it\n"
"pruebaiqos.es\n"
"ps.iqos.com\n"
"pt.iqos.com\n"
"qreator.ro\n"
"quiz.sogo-wp.com\n"
"re.iqos.com\n"
"referidos.iqos.com.co\n"
"referiqos.com\n"
"referiqosmy.com\n"
"register.iqos.id\n"
"rs.club.iqos.com\n"
"rs.iqos.com\n"
"sa.iqos.com\n"
"sahmatlafumat.iqos.ro\n"
"se.iqos.com\n"
"sg.myiqos.com\n"
"shareiqos.ch\n"
"shop.iqos.ru (Production) - Deprecated after 2018.11.\n"
"shop.iqos.ru (raw) - Deprecated after 2018.11.\n"
"si.iqos.com\n"
"sk.club.iqos.com\n"
"sk.iqos.com\n"
"smokefreeupdates.co.il\n"
"sms.sogo-wp.com\n"
"sogo-wp.com\n"
"stores.heattobacco.de\n"
"systemiqos.pl\n"
"teigaku.jp.iqos.com\n"
"testeiqos.at\n"
"testiqos.ch\n"
"testirajiqos.rs\n"
"timeforchanges.ch\n"
"tobacco-roll.co.il\n"
"tr.myiqos.com\n"
"trans.sogo-wp.com\n"
"tryiqos.ch\n"
"tryiqos.kr\n"
"tryiqos.ru\n"
"uk.iqos.com\n"
"uk.veev-vape.com\n"
"unsmoke.de\n"
"vn.iqos.com\n"
"www.iqos.com\n"
"www.iqosclub.ch\n"
"www.mystartapp.org\n"
"www.ordenar-unidades.com\n"
"Yext - de.iqos.com\n"
"yourdecision.ro\n"
"za.iqos.com")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html