What language should this NFA recognise? I am trying to figure out which language does the following NFA (taken from a Sipser's book "Introduction to theory of computation") recognise



From my understanding, this NFA accepts strings that contain at least two $1$s, but this is not precise, because, e.g., between the two ones we could have a $0$ or nothing ($\epsilon$). We can also have any number of $0$s or $1$s after these two $1$s.

My guess is that this NFA recognises a language whose strings contain the substrings $11$ or $101$, but I am not sure.

Can you help me defining the language that this NFA recognises?

In general, what is the best way to see what language is recognised by a NFA?
Don't overthink it; your intuition is correct. The only strings that get you from the start state to the final state are $&lt;anything&gt;11$ or $&lt;anything&gt;101$. Once you're in the final state, any subsequent inputs are also accepted, so the language accepted by this FA is, as a regular expression, $(0+1)^*(11+101)(0+1)^*$, which is obviously all strings containing 11 or 101.