Hallo Schmidt,
nur ein kleiner Schreibfehler in der Zeichenklasse.
falsch: [0-1a-f]
richtig: [0-9a-f] bzw.[\da-f]
Die Gruppierung liefert zwar kein falsches Ergebnis, ist aber überflüssig.
statt: ([0-9a-f]+)?
besser: [0-9a-f]+ oder [0-9a-f]*
Gruß Uwe