Code:
on *:sockread:creds.*: {
  sockread &data

  if ($bfind(&data, 1, BinarySecurityToken Id="PPToken1">t=)) {
    var %start = $calc($ifmatch + 34), %end = $bfind(&data, %start,  </wsse:BinarySecurityToken>), $&
      %str = $bvar(&data, $+(%start, -, %end)).text)
  }
}


problem here is that the string im trying to capture is

BinarySecurityToken Id="PPToken1">t=blahblah</wsse:BinarySecurityToken>

but in the sockread its coming through in chunks like

BinarySecurityToken Id="PPToken1">t=blahblahfgfdgfdgf
fgdgfdgfdgfdgfdg</wsse:BinarySecurityToken>

how can i change the code so it waits until the &data var has been fully filled up before doing the $bfind ?