# count the number of $needle instances in $heystack
proc countInstances {needle heystack {total 0} {offset 0}} {
    while {[set offset [string first $needle $heystack $offset]] >= 0} {
        incr total [expr { [incr offset] > 0 }]
    }
    return $total
}