Barisan Nasional, PAS and Amanah are up against each other in the Sungai Besar parliamentary by-election on June 18.