求教有关字符串匹配与错配的问题

对于两个字符串,一个源字符串S,和一个php?name=%B2%E2%CA%D4" onclick="tagshow(event)" class="t_tag">测试字符串str,检查S中是否包含str,如果字符串和str只有2个字符不同或小于2个不同,也算S包含str
比如
S="abccacddbbcc"
str="abcd"
S中的abcc和abcd只有最后一位不同,可以算作匹配
  acdd和abcd是中间两位不同,在允许范围内,也算作匹配
  bbcc和abcd也算是匹配的
最终要得出str在S中容错匹配的次数,以及第一次匹配的位置
对于这个问题我想知道用正则表达式怎么写,具体要用到哪些方法,函数.
哪位大侠给个提示或链接,小弟感激不尽!