how about giving this a try?

Code:
alias fix { return $regsubex($1,/\b(.)/g,$upper(\1)) }
on $*:TEXT:/^[.!@]alch .*$/Si:*:{
  if ($2 == $null) { .notice $nick Please Specify a name/item to lookup. | halt }
  var %alch.id $r(10000,99999)
  sockopen $+(alch.,%alch.id) astralscript.org 80
  sockmark $+(alch.,%alch.id) $iif($chan == $null,$nick,$chan) $nick $+($chr(3),14) $+($chr(3),10) $iif($query($nick),pm,$iif($hget(chandb,$+($network,:,$chan,:all)) == private,pr,$iif($left($1,1) == @,pu,pr))) $replace($2-,$chr(32),+)
}
on *:SockOpen:alch.*:{
  sockwrite -nt $sockname GET /bot/geniealch.php?name= $+ $6 HTTP/1.0
  sockwrite -nt $sockname Host: astralscript.org $+ $str($crlf,2)
}
on *:SockRead:alch.*:{
  var %read | .sockread %read | tokenize 124 $remove(%read,Genie:)
  var %c1 $gettok($sock($sockname).mark,3,32), %c2 $gettok($sock($sockname).mark,4,32), %send $replace($gettok($sock($sockname).mark,5,32),pm,.msg $gettok($sock($sockname).mark,2,32),pu,.msg $gettok($sock($sockname).mark,1,32),pr,.notice $gettok($sock($sockname).mark,2,32))
  if ($0 == 3) { %send $+(%c1,Item:,%c2) $fix($1) $+(%c1,Low Alch:,%c2) $3 $+(%c1,High Alch:,%c2) $2 | unset $+(%,$sockname,.,*) }
  if ($0 == 4) { %send No Items Found | unset $+(%,$sockname,.,*) }
}