On the Intersection of Context-Free and Regular Languages