
import yaml
import re

s  = """
good: foo
bad: |
     foo"""


class Test(yaml.YAMLObject):
    yaml_tag = '!test'
    pattern = re.compile(r'foo')
    yaml.add_implicit_resolver('!test', pattern)

    def __init__(self, s):
        self.s = s
    def __repr__(self):
        return 'Test(%s)' % self.s

    @classmethod
    def from_yaml(cls, loader, node):
        value = loader.construct_scalar(node)
        return cls(value)

print yaml.load(s)
