Evaluated proc - args {set result [regexp -inline {^<(@| |\+)*(.+?)> (.+?)$} [join ${args}]]; if {[llength $result] > 0} {set who [lindex $result 2]; set what [lindex $result 3]} else {set who [lindex $args 0]; set what [lrange $args 1 end]}; set ::phrases($who) [lreplace $::phrases($who) [lsearch $::phrases($who) $what] [lsearch $::phrases($who) $what]]}