The regex is constructed on the fly, but I\'ve output it to firebug:
(.{1,38})(+|$\\n?)
the error is
invalid quantifier +|$
The problem is the +, which is a quantifier you need to escape.
Use this instead:
/(.{1,38})(\+|$\n?)/
or inside a string:
"(.{1,38})(\\+|$\\n?)"
If you want to match the literal $ followed by a newline, you need to escape the $ with \ (or \\ inside a string - see my last comment below this for an explanation).
Here's some information on quantifiers.