pattern1([^p][^a][^t]...[^1])*?pattern2([^p][^a][^t]...[^1])*?pattern1 pattern1.(pattern1){0}*?pattern2.(pattern1){0}*?pattern1