Mahlzeit.
Muss man RegExp zurücksetzen oder kann man das Objekt irgendwie direkt ansprechen?
Das RegExp-Objekt, so wie du es verwendest, ist ein globales Objekt, was sozusagen einmalig und somit für dein Vorhaben denkbar ist. Verwendest du das lokale RegExp-Objekt, hat das meines Wissens nach den Nachteil, dass dir die Eigenschaften $[1..9] nicht zur Verfügung stehen. Allerdings könntest du auch an deinem Suchmuster feilen, denkbar wären bspw. Altenativen, also vielleicht statt:
datepattern = /(\d.)(\D.+\b)(\d.+)/;
das hier:
datepattern = /(\d{1,2})((\D.+\b)|(\W\w.+\W))(\d.+)/;
(Nur so 'ne Idee, ich habe einfach deine zwei Muster zusammenkopiert)
Vielleicht hilft's
Siechfred