Syrian President Bashar Assad has acknowledged recent "setbacks" in the war against rebels trying to topple him.

The rare admission of battlefield losses follows a series of significant rebel advances in northern and southern Syria. Assad spoke during a public appearance at a school in Damascus on Wednesday, surrounded by cheering students.

He said it was normal to have "gains and losses and ups and downs" in war.

However, Assad promised a comeback for his troops entangled in heavy fighting with rebels who recently took over a strategic town in northern Syria near the border with Turkey.