Ich sehe den Check nicht in rex_path, die Klasse sollte aus meiner Sicht genau das zurückgeben, was verlangt wird, egal ob .. oder ~ etc. Denn ~ kann es durchaus in Pfaden geben, und auch .. würde ich erlauben, also zum Beispiel `rex_path::addon('my_addon', 'my/../path')` (warum auch immer der Pfad so zusammengesetzt wurde, das sollte `rex_path` aber nicht interessieren).

Also würde ich wohl nur $name hier in der Methode direkt checken, und wenn nicht [a-z0-9_]*, dann `null` zurückgeben.