\b matches only an alphanumeric character and a non-alphanumeric character (or the beginning / end of a line). Therefore, it does not match after . unless an alphanumeric character follows this point.
If you intend to prevent the character without spaces from following the period, you can indicate that by using a negative forecast of expectations
(?i)\bi\.v\.(?!\S)
(?!\S) means "Assert that the next character is not a character without spaces."
This may seem a bit confusing - why is double negative? Why not (?=\s) , which means "Assert that the next character is a space character"? Well, there is a subtle difference: the second version requires a space character; this means that the regular expression will not match at the end of the line. The first regular expression also processes this angular register.
If you really want the word boundary to mean limited space, you also need to replace the first \b :
(?i)(?<!\S)i\.v\.(?!\S)
or the regex will match sam.iv , which you don't seem to want.
Tim pietzcker
source share