Wouldn’t a simple str_replace() do the trick then? Like
str_replace('001', '001-', $subject);
maybe with the optional $count parameter if you only want to replace the first match.
BTW, if you want to use regular expressions, only the pattern is a regex; the replacement is a string where you can access captured matches like “$1” (say).