original start b start c d e end f start g h i end j end analysis: - note that range operator is set to true when $flag1 is true becomes false only after $flag3 has been set to true 0, 0, 0, a 0, 0, 0, a 0, 0, 0, a 1, 1, 0, start success 0, 1, 0, b success 1, 1, 0, start success 0, 1, 0, c success 0, 1, 0, d success 0, 1, 0, e success 0, 1, 0, end success 0, 0, 0, f success 1, 1, 0, start success 0, 1, 0, g success 0, 1, 0, h success 0, 1, 0, i success 0, 1, 0, end success 0, 0, 0, j success 0, 0, 1, end success 0, 0, 0, k 0, 0, 0, k 0, 0, 0, l