動的計画法で数え上げます。

文章の1文字目から$j$文字目までの部分文字列を$T_j$、呪文の1文字目から$i$文字目までの部分文字列を$B_i$とし、$T_j$ の中に $B_i$が何回現れるかを $dp[i][j]$ に記録していきます。$dp[i][j]$を求める漸化式は以下のようになります。

\begin{equation*} dp[i][j] = \left \{ \begin{array}{ll} dp[i][j-1] + dp[i-1][j-1]  & (t_j = b_i) \\ dp[i][j-1] & (t_j \ne b_i\\ \end{array} \right. \end{equation*}