Appendix:German cognates with English/Regular cognates with differing consonant values/Proto-Germanic Voiced Stop Consonants

German b ~ English f, ff
German word-internal b has two main correspondences. The first is English f, always in cases at the end of a word:

German b ~ English v
In other cases, German b corresponds to English v. This correspondence always occurs between vowels (though in English, this may be only an orthographic silent e). English f and v are therefore in complementary distribution, and have developed from the same source.

German b ~ English f : v
That the two above correspondences have the same source is further demonstrated by words where English f (word-final) alternates with v (word-medial) in inflection.