Won't it be nice when the CIA puts this information into XML documents available to the public? ;)
If the HTML is all in one scalar, your RE is going to match the first thing it can and then stop. And unless you change your scalar or further differentiate the $start $end tests, the first thing is going to be the same each time you check it. You either need to break the HTML into smaller chunks, or use something like
HTML::TokeParser to wade through this.