Huh, that's pretty slick. I would have assumed they would have used different syntax, but that's pretty straight forward. So I assume that any additional parameters you give the method are parameters you're passing on?

Code:
      Imports System.Runtime.CompilerServices
        
      Public Module StringExtensions
       
          <Extension()> _
          Public Function IndexOfMulti(ByVal instance As String, ByVal search As String) As Integer()
          ...
Thus:

Dim indexes() As Integer = myString.IndexOfMulti("blah")

(I'll have to finish that thought tomorrow when I'm not up at 3am and suffering from insomnia )