import re
regex = re.compile(r"(^[0-9]{8})(?: )([0-9]{2}\/[0-9]{2}\/[0-9]{4})", flags=re.MULTILINE)
test_str = ("//INIZIO//\n"
"19300011 08/01/2019\n"
"COMPARIN SYSTEM S.R.L.\n"
"VIA F.TASCA 145\n"
"35010 SAN PIETRO IN GU PD\n"
"Italia\n"
"COMPARIN SYSTEM S.R.L.\n"
"VIA F.TASCA 145\n"
"35010 SAN PIETRO IN GU PD\n"
"Italia\n"
"ASSEGNATO\n"
"N.Ord. Peso\n"
"1 A.2018/003 NR 800 CAVALL.CENTR.SINGOLO RIPIEGATO /\n"
"2 A.4006/D51 NR 800 ASSIEME CONTATTO DX INVERTITOR / 2655,200\n"
"3 A.4006/S51 NR 800 ASSIEME CONTATTO SX INVERTITOR / 3112,000\n"
"4 A.4039/D52 NR 3000 ASSIEME CONTATTO TERRA BIVALEN / 12393,000\n"
"5 A.4039/S52 NR 5000 ASSIEME CONTATTO FASE BIVALENT / 20710,000\n"
"6 A.4050/052 NR 2000 ASS. CONT. TERRA PRESA UNIVERS / 12366,000\n"
"7 A.4050/053 NR 5000 ASS. CONT. FASE PRESA UNIVERSA / 24815,000\n"
"8 BIADESIVO MT 50 BIADESIVO SOTTILE SUPP. SP 0,1 /\n"
"9 ETI.100X56G NR 292 ETICHETTE 100X56 GIALLE X CONF /\n"
"10 ETI.30X15B NR 38512 ETICHETTE IN ROTOLO 15X30 BIAN /\n"
"11 ETI.32X80EL NR 233 ETICH IN ROTOLO 32X80 GIALLE /\n"
"12 GR.002 NR 2200 CONTATTO PER CAVALLOTTO / 2257,200\n"
"13 GR.003 NR 2200 CAVALLOTTO CENTRALE SINGOLO / 3484,800\n"
"14 GR.023 NR 10000 MORS.STRINGIF.PULS.7,8X7,8 ZB / 7570,000\n"
"15 GR.024 NR 3500 CORNICE ESTERNA / 13170,500\n"
"16 IMBALLO.01 NR 2 CARTONE LxLxH 533X330X285 /\n"
"17 IMBALLO.17N NR 25 CARTONE LxLxH INT 383X189X123 /\n"
"18 IMBALLO.22N NR 30 CARTONE LxLxH 35X27X18,5 / 10208,100\n"
"19 LAMP.NEON NR 1000 LAMP.NEON NE6X13 HB+100K 24/58 / 498,000\n"
"20 MEGA.2,5X42 NR 1000 GUAINA PVC DM.INT.2,5x42 TAGL. / 210,000\n"
"21 MOL2000/00 NR 2000 MOLLA INT.-PULSANTI ZINCATA BI / 1424,000\n"
"22 MOL3000/05 NR 600 MOLLA PULSANTE LUNGA ZINC.BIAN / 1000,800\n"
"23 MOL4011/00 NR 2400 MOLLA PULSANTI / 100,800\n"
"24 MOL4050/02 NR 4000 MOLLA RITORNO ELICA / 1688,000\n"
"25 PER2000/02 NR 5000 TER.MOL.GAMBO CORTO TESTA ALTA / 4890,000\n"
"26 PLA2012/01 NR 500 PULSANTE LUMINOSO AVORIO / 1564,000\n"
"27 PLA2012/02 NR 2000 INTERNO PULS.LUMINOSO ROSSO / 1260,000\n"
"28 PLA2015/00 NR 1500 CORPO BIPOL.LUM. 4 USC. NERO / 12826,500\n"
"29 PLA2015/01 NR 1000 TELAIET.INTERRUTTORE NERO / 2247,000\n"
"30 PLA2015/02 NR 434 TASTO LUMINOSO TAMPOGRAFATO \"0 / 1363,194\n"
"31 PLA2021/00 NR 1500 CORPO PULSANTE 2 USCITE NERO / 11953,500\n"
"32 PLA2024/02 NR 50 POMELLO NEW PER ART.2024 / 165,000\n"
"Bolla con continuazione\n"
"19300011 08/01/2019\n"
"COMPARIN SYSTEM S.R.L.\n"
"VIA F.TASCA 145\n"
"35010 SAN PIETRO IN GU PD\n"
"Italia\n"
"COMPARIN SYSTEM S.R.L.\n"
"VIA F.TASCA 145\n"
"35010 SAN PIETRO IN GU PD\n"
"Italia\n"
"ASSEGNATO\n"
"N.Ord. Peso\n"
"33 PLA2050.01 NR 2400 MOSTRINA UNIV.3FORI AVORIO LAS / 36969,600\n"
"34 PLA3000/05 NR 500 TASTO INTER. TL CON CANNOTTI C / 2095,000\n"
"35 PLA3012/01 NR 375 PULSANTE LUMINOSO SERIE TL / 1672,875\n"
"36 PLA4012/03 NR 2000 SOTTOTASTO TRASPARENTE / 5028,000\n"
"37 PLA4039/04 NR 6000 SOTTOELICA NERO / 6240,000\n"
"38 PLA4039/05 NR 5200 ELICA DI SICUREZZA NERO / 4134,000\n"
"39 PLA4045/00 NR 4500 CORPO PRESA BIVALENTE FLEXÌ / 36454,500\n"
"40 PLA4045/01 NR 2500 MOSTRINA PRESA BIVALENTE FLEXÌ / 13017,500\n"
"41 PLA4045/01WH NR 5000 MOSTRINA PRESA BIV. BIANCA / 26870,000\n"
"42 PLA4050/00 NR 3000 CORPO PRESA UNIVERSALE 2M / 23250,000\n"
"43 PLA4051/00WH NR 120 MOSTRINA TV SAT BIANCO / 810,960\n"
"44 PLA4080/00 NR 20000 MOSTRINA FALSO POLO FLEXÌ / 75300,000\n"
"45 PLA4080/00WH NR 8600 MOSTRINA FALSO POLO BIANCA / 33720,600\n"
"46 PLA4600/00 NR 65000 ADATTATORE SUPPORTO FLEXÌ / 17615,000\n"
"47 PLA4604/00 NR 1500 SUPPORTO 4P FLEXÌ / 32133,000\n"
"48 PLA4607/00 NR 500 SUPPORTO 7P FLEXÌ / 14846,500\n"
"49 PLA5703/00N NR 62 LASTRA TAGLIATA E FORATA 3M NE /\n"
"50 PLA5703/00NG NR 80 LASTRA TAGLIATA E FORATA 3M NE /\n"
"51 PLA5703/01 NR 160 CORNICE 3P ELITE TRASPARENTE / 2602,400\n"
"52 PLA7604/00 NR 300 SUPPORTO 4M FLAT / 6432,000\n"
"53 PLA7607/00 NR 200 SUPPORTO 7M FLAT / 5847,800\n"
"54 R.75.O NR 200 RESIST. 1/4 W 75 OHMS 1% /\n"
"55 S.4050/001 NR 240 MOSTR. UNIV. VERNICIATA ARGENT / 3298,560\n"
"56 S.5700.3CR NR 240 ANELLO ELITE 3P CROMATO / 1712,880\n"
"57 SACCH.30X42 NR 21 SACCH. PLT CM. 30X40 SPESS. 0, / 21,273\n"
"58 SACCH30X22 NR 200 SACCH. PLT CM. 20X30 SPESS. 0, / 1231,400\n"
"59 SCA.CLICK NR 100 SCATOLA CLICK 20,53X16X9,5 /\n"
"60 SCA.FLAT/3 NR 10 SCATOLA AUTOMONTANTE X PLACCHE / 1350,000\n"
"61 SCA.FLEX NR 8 SCATOLA FLEX 299X145X105 /\n"
"62 VBX.M3,5X22 NR 8000 V.T/BOMB.COMB.CIL.3,5X22 ZB / 11064,000\n"
"Bolla con continuazione\n"
"19300011 08/01/2019\n"
"COMPARIN SYSTEM S.R.L.\n"
"VIA F.TASCA 145\n"
"35010 SAN PIETRO IN GU PD\n"
"Italia\n"
"COMPARIN SYSTEM S.R.L.\n"
"VIA F.TASCA 145\n"
"35010 SAN PIETRO IN GU PD\n"
"Italia\n"
"ASSEGNATO\n"
"N.Ord. Peso\n"
"63 22520036 NR 120 PRESA ULB CONN.MASCHIO 0 DB / 7897,200\n"
"**************************************************\n"
"NR 02 PALLET 80 X 120 + NR. 01 PALLET 74 X 74\n"
"PESO TOTALE KG. 630\n"
"**************************************************\n"
"5HL 3 BANCALI\n"
"Destinatario 3 630,00\n"
"USCITA IN C/LAVORO A FORNITORE\n"
"08/01/2019 16:11:16\n"
"//FINE//")
match = regex.search(test_str)
if match:
print(f"Match 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