If you are using scripting, you can do this.
You didn't mention if the first line was a unique triggerable string(aka some sort of heading for the list), but I'll assume it is, as most muds like to show their name on the top of these sorts of lists.
Create an alias that calls function1 that sets up your first trigger for the first line to catch.
Your first trigger should call function2 which sets up all other triggers. In this case, you could probably do it with just a ^(.*)$ regexp to catch the entirety of every line, but you may want to limit it some more if you can so that you don't pick up extra communications possibly occuring while you scroll through the list. If there are no pauses while displaying the list, you shouldn't have the problem with extra communications.
For the trigger that catches the last line, call function3 that deletes all the triggers created throughout this functionality to clean itself up.
Short incomplete VBScript example:
data to process:
Mushclient Users
Vaejor the Board Reader
Herb the Question Asker
There are 2 users online.
alias: nwho
sends: who
script: nwho_initialize
Sub nwho_initialize(ByVal strName, ByVal strOutput, ByVal astrParam())
world.AddTrigger "nwho_first_line", "*Mushclient Users", ...., "nwho_start"
' ^
' ScriptName portion of AddTrigger
End Sub
Sub nwho_start(ByVal strName, ByVal strOutput, ByVal astrParam())
world.DeleteTrigger "nwho_first_line"
' The next line should be either made to output to notepad, or call a script
' which outputs it to a specifically named notepad
world.AddTrigger "nwho_data_line", "*", ....
world.AddTrigger "nwho_last_line", "There are * users online.", ...., "nwho_stop"
End Sub
Sub nwho_stop(ByVal strName, ByVal strOutput, ByVal astrParam())
world.DeleteTrigger "nwho_data_line"
world.DeleteTrigger "nwho_last_line"
End Sub