Many thanks to all who answered on this. I'm going with Mark's  
suggestion here which is doing the trick quite nicely.

Thanks,

RJay



On Sep 18, 2008, at 4:21 PM, Mark Lively wrote:

> Another option is with text item delimiters
>
>
> set instring to "This is some _boring_ text"
> set repstring to "EXCELLENT"
> set tid to applescript's text item delimiters
> set applescript's text item delimiters to "_"
> set outtext to text item 1 of instring & repstring & text item 3 of  
> instring
> set applescript's text item delimiters to TID
> outtext
>
> Not exactly what you were looking for but it works.
>
> It can even be expanded.
>
> set instring to "This is some _boring_ text.  With _multiple_  
> replaces."
> set reptext to {"EXCELLENT","no"}
> set tid to applescript's text item delimiters
> set applescript's text item delimiters to "_"
> set itemlist to every text item of instring
> set outtext to ""
> set applescript's text item delimiters to TID
>
> repeat with i from 1 to count itemlist
> 	if i mod 2 = 1 then
> 		set outtext to outtext & item i of itemlist
> 	else
> 		set outtext to outtext & item (i div 2) of reptext
> 	end
> end
>
> furthermore....
>
> set instring to "This is some _boring_ text.  With _multiple_ _out  
> of order_ replaces."
> set reparray to {"out of order", "ordered or unordered", "boring",  
> "EXCELLENT", "multiple", "no"}
> set tid to AppleScript's text item delimiters
> set AppleScript's text item delimiters to "_"
> set itemlist to every text item of instring
> set outtext to ""
> set AppleScript's text item delimiters to tid
>
> repeat with i from 1 to count itemlist
> 	if i mod 2 = 1 then
> 		set outtext to outtext & item i of itemlist
> 	else
> 		repeat with j from 1 to ((count reparray) div 2)
> 			if item (2 * j - 1) of reparray = item i of itemlist then
> 				set outtext to outtext & item (2 * j) of reparray
> 				exit repeat
> 			end if
> 		end repeat
> 	end if
> end repeat
>
> -Mark
> Feeling pedantic and liking it.
>
>
> On Sep 18, 2008, at 4:56 PM, Mark J. Reed wrote:
>
>> Well, there's always the brute force approach:
>>
>> set theText to (text begin through (beginItal-1) of theText) &
>> newString & (text (endItal+1) through end of theText)
>>
>> On Thu, Sep 18, 2008 at 4:19 PM, RJay Hansen  
>> <[log in to unmask]> wrote:
>>> Thanks for the suggestion Mark. Unfortunately, that generates the  
>>> same
>>> error--"Can't set text 23 thru 32 of theText...etc."
>>>
>>> RJay
>>>
>>>
>>> On Sep 18, 2008, at 2:54 PM, Mark J. Reed wrote:
>>>
>>>> If theText is
>>>>
>>>> Here's some text with underscores (_like this_).
>>>>
>>>> Then the first underscore is at text position 36, but is contained
>>>> within word 6.  I'm guessing that beginItal holds the former value,
>>>> not the latter, so you want "set text beginItal thru endItal of
>>>> theText", not "set words ...".  (Setting words would also  
>>>> replace the
>>>> entire words "(_like" and "this_)" rather than leaving the  
>>>> parentheses
>>>> alone.)
>>>>
>>>> On Thu, Sep 18, 2008 at 3:16 PM, RJay Hansen  
>>>> <[log in to unmask]>
>>>> wrote:
>>>>>
>>>>> I'm writing a script that's intended to parse out text that is  
>>>>> enclosed
>>>>> within underscores (_like this_). I'm using Tex-Edit Plus and  
>>>>> Smile.
>>>>>
>>>>> I'm putting text selected in Tex-Edit Plus into a variable then  
>>>>> getting
>>>>> what
>>>>> I need working with the text in the variable. Once I have it, I  
>>>>> want to
>>>>> replace the string surrounded by the underscores (and including  
>>>>> the
>>>>> underscores) with the new string using this:
>>>>>
>>>>> set words beginItal thru endItal of theText to newString
>>>>>
>>>>> beginItal and endItal are the indexes of the underscores.  
>>>>> theText is the
>>>>> variable that the selection from the document is read into and  
>>>>> newString
>>>>> is
>>>>> of course, the replacement string.
>>>>>
>>>>> Smile comes back with "Can't set words 23 thru 32 of theText  
>>>>> (it puts the
>>>>> actual string in the error message/not the variable name as  
>>>>> shown here)
>>>>> to
>>>>> newString (and again, it puts the new string in the error  
>>>>> message, not
>>>>> the
>>>>> variable name)".
>>>>>
>>>>> I haven't been able to figure out why I can't do this. Any help  
>>>>> would be
>>>>> appreciated.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> RJay
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Mark J. Reed <[log in to unmask]>
>>>
>>
>>
>>
>> -- 
>> Mark J. Reed <[log in to unmask]>
>>