You want to search whole 'words' only, so you have to take the word boundaries (\b) into account. See for the example:
https://regex101.com/r/1H20Mx/1
As a console application:
Sub Main()
Dim Materials As List(Of String) = New List(Of String)
Materials.Add("JU9900")
Materials.Add("I78")
Materials.Add("JU9")
Materials.Add("JU990")
Materials.Add("TX90")
Dim FoundMaterials As List(Of String) = GetMaterials(Materials, "...bla_bla, JU9900 / TX / TX90, JU990 bla_bla...")
For Each Material In FoundMaterials
Console.WriteLine(Material)
Next
Console.Read() ' keep console open and wait for user to exit
End Sub
Private Function GetMaterials(Materials As List(Of String), Input As String) As List(Of String)
Dim FoundMaterials As List(Of String) = New List(Of String)
Dim TestPattern As String = ""
For Each Material As String In Materials
' escape any RegEx-characters in the Material's name
TestPattern &= System.Text.RegularExpressions.Regex.Escape(Material) & "|"
Next
TestPattern = TestPattern.Trim("|"c) ' remove the | at the end
For Each TestMatch As System.Text.RegularExpressions.Match In System.Text.RegularExpressions.Regex.Matches(Input, "\b(" & TestPattern & ")\b")
FoundMaterials.Add(TestMatch.Value)
Next
Return FoundMaterials
End Function