$UUID_RE = join '-', map { "[0-9a-z]{$_}" } 8, 4, 4, 4, 12;
BTW, разрешая только 4 на одной из позиций, действителен только для UUIDv4. Но v4 - не единственная версия UUID, которая существует. Я также встречал v1 в своей практике.