El backtracking es una técnica de programación para encontrar sistemáticamente todas las posibles soluciones a un problema mediante la construcción y evaluación de candidatos. Funciona dividiendo el problema en subproblemas, explorando primero las ramas más prometedoras del árbol de búsqueda y descartando las que no cumplen las restricciones. Se usa comúnmente para problemas como el reconocimiento de patrones y la resolución de expresiones regulares.