fork download
  1. import re
  2. p = re.compile(r'(?=\t)((?:.|\n\t+)*)', re.MULTILINE)
  3. test_str = "SELECT\n\tSELECT select1\n\tFROM\n\t\tSELECT A\n\t\tFROM B\n\t\tWHERE C\n\tWHERE X\nFROM\n\tSELECT from1\n\tFROM from2\n\tWHERE from3\nWHERE\n\tSELECT child1\n\tFROM child2"
  4.  
  5. print(re.findall(p, test_str))
Success #stdin #stdout 0.02s 9936KB
stdin
Standard input is empty
stdout
['\tSELECT select1\n\tFROM\n\t\tSELECT A\n\t\tFROM B\n\t\tWHERE C\n\tWHERE X', '\tSELECT from1\n\tFROM from2\n\tWHERE from3', '\tSELECT child1\n\tFROM child2']