India is by far the best team, and Nepal is the 2nd best team. Pakistan is nowhere near as good as India. If you remember, India beat them 6-0 back in January at the South Asian Games.
I don't know what made you think Pakistan was good - they struggled to beat Maldives 2-1 with a last minute penalty. This is the same Maldives team who lost 6-0 to Nepal in their first match.
Remaining group matches:
Bangladesh v Bhutan - Bangladesh beat Bhutan 7-0 in a friendly just before the tournament, so this should be a comfortable win to send Bangladesh to the semi-finals.
India v Sri Lanka - India beat Sri Lanka 8-1 back in January, and they should have a similar result today.
That means the last 2 matches will decide who wins the group and who finishes bottom. Sri Lanka should beat Bhutan and India should beat Bangladesh (they beat them 7-0 in January). This will leave the final positions like this:
1. India
2. Bangladesh
3. Sri Lanka
4. Bhutan
In the other group, Pakistan and Maldives should both beat Afghanistan, and Nepal should beat Pakistan (they beat them 7-0 in January), which will leave the final group like this:
1. Nepal
2. Pakistan
3. Maldives
4. Afghanistan
Semi-finals will be India v Pakistan and Bangladesh v Nepal, almost guaranteed.
In January, the results of these matches were India 6-0 Pakistan and Bangladesh 0-1 Nepal. India then won the final 3-1 against Nepal. So, Bangladesh may have a small chance of reaching the final.
My ranking of the 8 teams: