Lamento decirte que las expresiones regulares que usas son obsoletas, y sobre todo, están mal diseñadas.
Me imagino que existirá alguna librería en Packagist/Composer que haga lo que buscas y mejor.
¿Por qué no buscas algo que ya resuelva el problema?
De otra forma te sugiero entonces estudiar más de expresiones regulares, que, siendo otro tema requiere estudio aparte.