You could do something like this
library(tidyverse)
# Sample data
df <- data.frame(stringsAsFactors = FALSE,
reference = c("MH12345", "MH45678", "MH98743", "TM12345",
"TM45678", "TM98743", "1234567", "4657893",
"5480238", "FB12345", "FB45678", "FB98743")
)
df %>%
mutate(dummy = case_when(
str_detect(reference, "^(MH|TM|\\d{2})\\d{5}") ~ 1,
str_detect(reference, "^FB\\d{5}") ~ 2
))
#> reference dummy
#> 1 MH12345 1
#> 2 MH45678 1
#> 3 MH98743 1
#> 4 TM12345 1
#> 5 TM45678 1
#> 6 TM98743 1
#> 7 1234567 1
#> 8 4657893 1
#> 9 5480238 1
#> 10 FB12345 2
#> 11 FB45678 2
#> 12 FB98743 2
# Or if there are no other possible values you could simply do this
df %>%
mutate(dummy = if_else(str_detect(reference, "^FB\\d{5}"), 2, 1))
#> reference dummy
#> 1 MH12345 1
#> 2 MH45678 1
#> 3 MH98743 1
#> 4 TM12345 1
#> 5 TM45678 1
#> 6 TM98743 1
#> 7 1234567 1
#> 8 4657893 1
#> 9 5480238 1
#> 10 FB12345 2
#> 11 FB45678 2
#> 12 FB98743 2
Created on 2019-11-07 by the reprex package (v0.3.0.9000)