重点在before上。XXX before ... 是说"在...之前",那个XXX只是用来修饰before。不管是short before, medium before (这两个是我胡编的)还是long before,它们只是用来修饰before的程度的。而before long,是“在long之前”,比long靠前的当然是short,所以它的意思是“不久以后”。
要区分这两个短语很简单,只要记住两个关键词long,before: before long里面的关键词是long,因此它经常是单独使用,表示比过去某时早得多的时间。 long before里面的关键词是before,意思是“在……的很久以前,在还没有……的很久以前”,before可以充连词,因此它后面可以接句子。