Отнесу к последнему выражению.
идёт начало строки, затем мусор (любое количество не-цифр), если затем встречается цифра от 1 до 9 то хорошо, а если после неё будет цифра от 0 до 9 -0 то ещё лучше(не будет второй цифры - фиг с ней, она не обязательна) - запомним эти цифры (потому что в скобках), а всё остальное - остаток строки до конца совпадёт с сочетанием .*(любое количество любых символов), но мы запомним первые попавшиеся цифры, и возьмём их из $id[1] (потому что в $id[0] будет всё что совпало с шаблоном, а в $id[1] - только то, что совпало в первых скобках)
таким образом мы вытащим из строки с мусором число от 1 до 99.