Ok, for completeness and to assist anyone who is having a similar issue I have managed to 'work around' the issue by using Tcl based commands so the work is being done by expect rather than passing it to the spawned processes shell:
Create (and open) a test file, dump the contents of the buffer in there:
set tmpfile "tmp[pid].txt"
set output [open $tmpfile "w"]
set outcome $expect_out(buffer)
puts $output $outcome
Now re-open the file for writing and read the first line into a variable:
set fp [open $tmpfile "r"]
set file_data [gets $fp]
exec rm $tmpfile
This will then allow you to output the first line of the buffer using:
Now I know this isn't the cleanest way of doing this, using a file and having to open it twice isn't ideal but I am trying to refine it down to create, write, read and delete in one strike.