En réponse à votre question, "est-ce vraiment ainsi que MySQL a implémenté regexp?" la réponse est oui. Il renvoie simplement un booléen en cas de succès ou d'échec de correspondance.
En réponse à votre question, "pourquoi ils se raseraient de la norme prescrite", la réponse est qu'il est plus utile dans les requêtes d'avoir des retours booléens, puisque vous testez plus souvent la présence de quelque chose, pas en extrayant quelque chose, basé sur un motif. L'extraction se fait plus souvent à l'aide de langages procéduraux, et non de bases de données relationnelles.
Pour faire ce que vous voulez qu'il fasse, vous pouvez écrire une procédure stockée qui effectue la manipulation de chaîne nécessaire.