I’m trying to construct a **formal** regex for the language of binary strings in which every 00 must have at least two 1s before it.

I realize this can be done **informally** with lookbehinds using the following: `^(?:(?<=11)00(?!0)|(?<=1)0|1+)+$`

, however I am now trying to construct this formally, without them.

I currently have `(0|)(11*0)*1*`

(or informally `(0+ε)(11*0)*1*`

– I believe these both describe the language mentioned) which gives me the language of binary strings without consecutive 0s, but am not quite sure how to get the ‘conditional’ part in without actually using a conditional.

**Accepted:**

0

1

10

11100

1100

**Rejected:**

100

1000

11000