In risposta alla tua domanda, "è davvero così che MySQL ha implementato regexp?" la risposta è si. Restituisce semplicemente un valore booleano in caso di successo o mancata corrispondenza.
In risposta alla tua domanda, "perché dovrebbero radersi deviato dalla norma prescritta", la risposta è che è più utile nelle query avere rendimenti booleani, poiché più spesso stai testando la presenza di qualcosa, non estraendo qualcosa, basato su un modello. L'estrazione di oggetti viene eseguita più spesso utilizzando linguaggi procedurali, non database relazionali.
Per fare ciò che vuoi, potresti voler scrivere una stored procedure che esegua la necessaria manipolazione delle stringhe.