Why are regular expressions called regular expressions? Two regular expressions that achieve the same result can often look completely different, so what’s so regular about that?

And also: they’re not even expressive. Who can really understand what /(<[^href]*href=(\"|'))([^(\"|')]+)(\"|')/ does off the top of their head? (Okay, I admit it's semi-obvious that it's something to do with links.) I guess it could be 'expression' in terms of expressionism in art, which tends to look pretty crazy too.