¿La expresión anticipada de expresiones regulares afecta la coincidencia posterior?

Estaba jugando con expresiones regulares y encontré algo que no entiendo.

Esperaría esta expresión regular:

(?=1)x

para que coincida con esta cadena:

"x1"

Pero no lo hace. En ruby el código se ve así:

> "x1".match /(?=1)x/
=> nil

Esto es lo que esperaría que sucediera:

Comenzamos con el cursor del analizador de expresiones regulares en "x".El motor regexp busca en la cadena "1" y obtiene una coincidencia. El cursor todavía está en "x"El motor regexp busca "x" y lo encuentra, ya que el cursor no se ha movido.¡Éxito! ¡Lucro!

Pero aparentemente estoy equivocado, porque no coincide. ¿Podría alguien decirme dónde me he equivocado?

Por cierto, he notado que si el patrón que coincide con la búsqueda anticipada contiene los caracteres que coincido en la expresión posterior, funciona. es decir.(?=x)x partidosx1 muy bien Sospecho que esta es la clave del misterio, pero no lo entiendo. :)