Ich denke, was du versuchst, lässt sich mit RegEx ohne "lookaround" oder "reluctant qualifier" nicht in einem einzigen Aufruf umsetzten, weil du am Anfang beliebig viel Rauschen matchen musst, und der entsprechende Rausch-Matcher immer die Zeichen von deiner Ergebnis-Group auffrist. Ich hatte 'print gensub("^.*(.{,6})\>\s*$", "\1", "g", sInput)' ehrlich gesagt nicht getestet, aber jetzt sehe ich, dass und warum es nicht funktioniert.
Schau dir nochmal mein Script an. Der Trick ist, dass du dir mittels 'idx = match(sInput, ".{,6}\>\s*$")' die Start-Position der 6 Zeichen geben lässt, und dann mittels 'substr()' den richtigen Teil ausschneidest, oder wie in meinem Script einfach alle Zeichen bis zum Schluss behandelst (es folgen ja nur zu ignorierende Leerzeichen).
MfG