Devo controllare che una stringa sia composta da una sequenza di sole lettere e numeri di 8 caratteri, un trattino, tre sequenze di sole lettere e numeri lunghe 4 caratteri (separeate da un trattino) e una sequenza di sole lettere e numeri lunga 12 caratteri.

Ovvero qualcosa del genere:
a74b1b7f-71a5-4011-9441-d0b5e4122711

Come posso utilizzare le espressioni regolari per capire la validità della stringa in oggetto?

Ho fatto una cosa del tipo:

Codice PHP:
public function isValid($string)
    {
        
$pattern '/^[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}$/';
        return 
preg_match($pattern$string);
    } 
Sembra funzionare, è davvero corretto il pattern che ho scritto?