Find self-locating strings in a number

APL (Dyalog Extended), 16 bytes

+/⍬∘⍋(⍸⊣⊃¨⍕⍛⍷¨)⊂

Try it online!

Takes a string of digits.

How it works

+/⍬∘⍋(⍸⊣⊃¨⍕⍛⍷¨)⊂  ⍝ Input: character vector of digits
  ⍬∘⍋             ⍝ X←Array of 1-based indices
     (    ⍕⍛ ¨)   ⍝ Stringify each of X
     (      ⍷¨)⊂  ⍝ And for each of above, build a boolean array where
                  ⍝   substring matches are marked as 1
                  ⍝ e.g. '10'⍷'10428104' is [1 0 0 0 0 1 0 0]
       ⊣⊃¨        ⍝ Extract X-th indices from each of above
      ⍸           ⍝ Convert ones to its 1-based locations
+/                ⍝ Sum

05AB1E, 9 bytes

āʒ.$yÅ?}O

Try it online!


Python 2, 112 \$\cdots\$ 52 51 bytes

Saved 9 bytes thanks to ElPedro!!!
Saved a byte thanks to Jonathan Allan!!!
Saved 3 4 bytes thanks to Poon Levi!!!

f=lambda s,i=0:s>s[:i]and(s[:i]+`i`in s)*i+f(s,i+1)

Try it online!

Takes a number in the form .abc... as string input and returns its SRI.