In order to simplify the interface, and mimic the PHP equivalent more closely; I updated an old applescript I’d written for use with OS X’s Automator services. I use this for batch-editing filenames in the Finder.

substr_replace ( replacement : start : length )

Parameters
replacement
The replacement string.
start
If start is positive, the replacing will begin at the start ‘th offset into string .
If start is negative, the replacing will begin at the start ‘th character from the end of string .
length
If given and is positive, it represents the length of the portion of string which is to be replaced. If it is negative, it represents the number of characters from the end of string at which to stop replacing. If it is not given, then it will default to strlen( string ); i.e. end the replacing at the end of string . Of course, if length is zero then this function will have the effect of inserting replacement into string at the given start offset.