Regex comment faire correspondre un caractère facultatif

J'ai une regex que j'ai pensé fonctionnait correctement jusqu'à présent. J'ai besoin de correspondre à un caractère facultatif. Il peut être là ou il ne peut pas.

Voici deux chaînes. Le haut de la chaîne de correspondance est alors que la baisse n'est pas. L'absence d'une seule lettre dans la chaîne inférieure est ce qui est le faire échouer.

Je voudrais obtenir la lettre seule après le départ de 5 chiffres si il existe et si non, continuer à obtenir le reste de la chaîne. Cette lettre peut être A-Z.

Si je supprime ([A-Z]{1}) +.*? + de la regex, elle correspond à tout ce dont j'ai besoin à l'exception de la lettre, mais c'est important.

20000      K               Q511195DREWBT            E00078748521
30000                      K601220PLOPOH            Z00054878524

Voici la regex que j'utilise.

/^([0-9]{5})+.*? ([A-Z]{1}) +.*? +([A-Z]{1})([0-9]{3})([0-9]{3})([A-Z]{3})([A-Z]{3}) +([A-Z])[0-9]{3}([0-9]{4})([0-9]{2})([0-9]{2})/
InformationsquelleAutor jim | 2010-10-24