> Writing a regex involves always looking up the syntax
No. I mean, I believe it does for you. I use it often enough that it's always fresh. On the other hand, I always need to look up the syntax of CREATE TABLE. My experience can be described the same as yours.
I think the main problem with regular expressions is that there are so many dialects that are subtly different. The same sort of goes for SQL, but it's not quite as bad as regular expressions are.
(Other big problem with regexes is that they are strictly slower than handrolling the equivalent string parsing code, and kind of a denial of service hazard to boot).
There's a standard base dialect of regex that works everywhere, just like SQL.
SQL also tends to be slower than hand optimized data structure wrangling.
If you use untrusted regex, you'll be subject to DOS. If you use untrusted SQL, you'll be subject to much worse.