import re
regex = re.compile(r"\b((?:INT|EXT)\..*\S)[^\S\n]+[a-zA-Z]*\d+\n(?s:(.+?)(?=\b(?:EXT|INT)\.|\Z))", flags=re.MULTILINE)
test_str = ("7 INT. COLONY HOTEL - STAIRWELL - NIGHT 7\n"
" Lowrey and Burnett clip on their shields and unholster\n"
" their guns. The posing is over. This is business.\n\n\n"
"A8 INT. COLONY HOTEL - SUITE 202 - NIGHT A8\n"
" On the table are two briefcases. Each opened. One\n"
" containing cocaine. The other, cash. A pistol next\n"
" to each.\n\n"
"26 EXT. POLICE STATION ALLEY - NIGHT 26\n"
" Bag after bag drops down the trash chute and tumbles into\n"
" an open-roofed van where the last of the gang, Eddie\n"
" Dominguez, waits with the ENGINE RUNNING.\n\n\n"
"27 IN AIR DUCT 27\n"
" The sled rockets by again -- WHOOSH -- loaded with more\n"
" bags.\n\n\n"
"28 INT. HEROIN LOCKER 28\n"
" Casper and Fouchet throw the last of their gear down the\n"
" chute and ride the sled out.\n\n\n"
"29 EXT./INT. VAN - POLICE STATION - ALLEY 29\n"
" One! Two! Three! Four! They all land atop the bags.\n"
" Eddie GUNS the VAN, which rolls up the ramp and out the\n"
" garage.\n"
" (CONTINUED)\n\n\n"
" 8.\n"
"29 CONTINUED: 29\n"
" FOUCHET (O.S.)\n"
" Haul ass!\n\n\n"
"30 EXT. POLICE STATION - ALLEY - NIGHT 30\n"
" On the ledge the tape runs out and RECORDER EXPLODES.\n"
" Pieces scatter.\n\n\n"
"31 EXT. STREET - NIGHT 31\n"
" The van drives off into the golden sunrise of Miami.\n"
" TITLES END.\n\n\n"
"32 EXT. LUXURY HIGH-RISE (COCONUT GROVE) - MORNING 32\n"
" One of those expensive condo buildings on Brickell Avenue\n"
" with a circular driveway and a uniformed doorman.\n\n\n"
"33 INT. CONDO - MORNING 33\n"
" CAMERA TRACKS THROUGH expensive and trendy bachelor's\n"
" lair. State-of-the-art everything, gorgeous artwork.\n"
" Spectacular view.\n"
" CAMERA STALLS ON -- a perma-plaqued newspaper clipping\n"
" with a photo depiction of Lowrey and Burnett in front of\n"
" a giant pile of black heroin, thumbs up to the camera.\n"
" The headline reads: MIAMI PD RECORDS RECORD HEROIN BUST.\n\n\n"
"34 INT. LOWREY'S BEDROOM - MORNING 34\n\n\n"
" Where Lowrey wakes up in a king-sized bed. The pain on\n"
" his face and empty, scattered bottles tell us he's\n"
" nursing a world-class hangover. He sits up, carefully,\n"
" holds his aching head. Hearing BREATHING, Lowrey lifts\n"
" the sheet next to him.\n\n\n"
" REVEAL THE LATINA\n"
" The one from the Colony Hotel. He drops the sheet back\n"
" over her head, reaches over to his nightstand and grabs\n"
" an industrial-sized bottle of Excedrin. Empty. He opens\n"
" the nightstand drawer, extracts another bottle. Empty.\n\n\n"
" BAD BOYS - Rev. 6/22/94 9.\n"
"35 INT. BATHROOM 35\n"
" All marble and brass. Lowrey opens up his medicine\n"
" cabinet. Locating a new bottle of aspirin... he suddenly\n"
" realizes that the SHOWER is RUNNING. Confused, he pulls\n"
" open the shower curtain slightly. From the back, it's an\n"
" incredible body, then she turns around and it's --\n"
" THE LATINA\n"
" Yes. The very same as the one he just saw in bed. What?\n"
" LATINA TWIN\n"
" 'Morning.\n"
" Lowrey closes the curtain on her. Frowns at this\n"
" impossibility. He steps back into the doorway and peers\n"
" over at his bed. Yep, same face. Twins?\n"
" LOWREY\n"
" (shaking his head)\n"
" Oh man...\n"
" He tears open the bottle of aspirin. Chug-a-lugs.\n\n\n"
"36 INT. BURNETT HOUSE - BEDROOM - MORNING 36\n"
" Burnett and his young wife, THERESA, are jarred awake by\n"
" the CLOCK RADIO BLARING on the night stand. Theresa\n"
" gropes for RADIO, shuts it OFF. Burnett playfully gropes\n"
" for her.\n"
" THERESA\n"
" Marcus, what are you doing?\n"
" BURNETT\n"
" We're always saying we should\n"
" spend more quality time together.\n"
" Well, I got the time... and you\n"
" got the quality...\n"
" She laughs. He kisses her.\n"
" BURNETT\n"
" I can remember when we used to\n"
" do it every morning.\n"
" THERESA\n"
" That was how we got a three\n"
" bedroom house filled with little\n"
" Burnetts.\n"
" She crawls from bed.\n"
" BURNETT\n"
" Been over a week since I've had\n"
" some quality time!\n\n\n"
" BAD BOYS - Rev. 6/22/94 10.\n"
"37 INT. BURNETT'S KITCHEN - MORNING 37\n"
" Pandemonium. There's the two-and-a-half-year-old,\n"
" MEGAN, who's taking bites of food and spitting it back\n"
" out, looking at it, then putting it back in. Six-year-\n"
" old JILL, who is playing refrigerator magnet games on the\n"
" fridge. And Marcus in the middle of it all, deftly side-\n"
" stepping his eight-year-old boy, QUINCY, who appears on\n"
" roller blades whizzing through with a hockey stick and\n"
" ball. He body-checks Jill against the ice box.\n"
" JILL\n"
" Mom, Quincy pushed me.\n"
" QUINCY\n"
" Uncle Mike showed me that move.\n\n\n"
" THERESA\n"
" Quincy, never-you-mind. And take\n"
" those things off in the house!\n"
" Jill, stop with the book and eat\n"
" your breakfast.\n"
" (then, exasperated)\n"
" Marcus, why do I always have to\n"
" discipline the kids? You play\n"
" bad cop for a second.\n"
" Alongside the kitchen screen door we see Lowrey's PORSCHE\n"
" ROAR to a stop in the driveway.\n"
" BURNETT\n"
" Kids, knock it off... or your\n"
" momma's gonna whoop your butts!\n"
" Theresa laughs in spite of herself as the kids continue\n"
" to fight. Into this craziness enters Mike Lowrey...\n"
" LOWREY\n"
" Ah, family life. Reminds me\n"
" why I stay single.\n"
" JILL & QUINCY\n"
" Uncle Mike! Uncle Mike!\n"
" LOWREY\n"
" Hiya, kids. Mornin', Theresa.\n"
" Lowrey pecks Theresa on the cheek. She recoils.\n"
" THERESA\n"
" Don't kiss me, Lowrey. I don't\n"
" know where those lips were last\n"
" night.\n"
" (CONTINUED)\n"
" ")
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