En expresiones regulares, ¿qué es un retroceso / referencia inversa?

¿Qué significa usar una expresión regular de retroceso?

Además, ¿podrías dar un ejemplo de esto?

Backreferences y backtracking son dos cosas diferentes. El primero está utilizando los resultados de una captura posterior en el código, por ejemplo

(['"]).*?\1 

Esto coincidirá con una cadena de una o dos comillas (ignorando escapes por el momento). Utiliza una referencia inversa para referirse al símbolo abierto (la comilla simple o doble) para que coincida con el final.

Retroceder, por otro lado, es lo que hacen las expresiones regulares de forma natural durante el curso de la coincidencia cuando falla una coincidencia. Por ejemplo, si estoy haciendo coincidir la expresión

 .+b 

contra la cuerda

 aaaaaabcd 

entonces primero emparejará aaaaaabc en .+ y comparará b contra el d restante. Esto falla, por lo que retrocede un poco y coincide con aaaaaab para .+ Y luego compara la b final contra la c . Esto también falla, por lo que retrocede nuevamente e intenta aaaaaa para .+ Y la coincidencia con b contra la b y tiene éxito.