\1 matches whatever group 1 captured — not what group 1 could match, but the exact text it did. \k<name> does the same for a named group.
That is how you find a repeated word, or a quoted string whose closing quote has to be the same character as its opening one.
A backreference to a group that never ran matches the empty string rather than failing. So (a)?\1b matches a bare b, which is almost never what the author had in mind.
Backreferences are also the point where a regular expression stops being regular. A pattern without them can be compiled into an automaton that runs in linear time no matter what you feed it; a pattern with one cannot, and has to be matched by backtracking.
That is a real cost, and it is why some engines — Go's, and Rust's — refuse backreferences outright rather than accept a pattern that might not finish.