I understand how regular expressions got their name, and have read the related question (Why are regular expressions called "regular" expressions?), but am still wondering whether regular expressions are always regular.
For example, how can back-references be regular? Would that not require some memory and thus be impossible to match/generate by a finite state automaton?
The link in the answer to the question you reference states (in wikipedia), as opposed to many regular expressions engines provided by modern programming languages, which are augmented with features that allow recognition of languages that cannot be expressed by a classic regular expression.
So I would say that the evolution of regex moved it away from it's original idea of expressing regular languages.
From the Wikipedia article on regular expressions:
Many features found in virtually all modern regular expression libraries provide an expressive power that far exceeds the regular languages. For example, many implementations allow grouping subexpressions with parentheses and recalling the value they match in the same expression (backreferences). This means that, among other things, a pattern can match strings of repeated words like "papa" or "WikiWiki", called squares in formal language theory. The pattern for these strings is
(.+)\1
.