Is something like this what you had in mind? Generally, any time you think you need regular expressions, a SenseTalk chunk expression (words in this case) will do what you need.
Copy this into a new script and run it:
//TODO dps Ask the user for the actual file here instead
put the script of me into testScript
repeat with each line of testScript
if the first word of it is not "//TODO" then next repeat
//TODO af This could be simpler if initials were required
put word 2 of it into initials
//TODO Problem here if first word of task is short!
if the length of initials is between 0 and 3 then
put words 3 to last of it into todo
put words 2 to last of it into todo
put empty into initials
//TODO notice that we can create assignments on the fly
insert todo into the (initials) of assignments
//TODO af Clean this up to work the way you want
repeat with each initials of the keys of assignments
put "Assignments for " & (if initials is empty then "Anybody" else initials) & ":"
put assignments.(initials) joined by return
put -- empty line
The fact that initials may be omitted will cause some problems with this approach. Did you have something in mind to identify a todo item without initials that starts with a 2- or 3-letter word?