Prueba con este regex:
Pruebalo en este web:
http://www.phpliveregex.com/
Cambia $variable por tu variable.
Código:
if (preg_match('/https?:\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]|[a-z\s\.|á|é|í|ó|ú]{1,}(?=\[.*\])/i', $variable)) {
# regex funciono con exito...
} else {
# regex no funciono...
}
O si es que no funciona el de arriba, prueba este:
Código:
if (preg_match_all('/https?:\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]|[a-z\s\.|á|é|í|ó|ú]{1,}(?=\[.*\])/mi', $variable)) {
# regex funciono con exito...
} else {
# regex no funciono...
}