anchor.diff:             const char * at, size_t length, 
              int line)
   {
  -  VALUE val = rb_str_new(at, length);
  +  VALUE val = ENCODED_STR_NEW(at, length);
     rb_funcall(listener, rb_intern(attr_type), 2, val, INT2FIX(line));
   }
   
  
positive.code:              int current_line)
  {
    VALUE con = Qnil, kw = Qnil;
    kw = rb_str_new(keyword_at, keyword_length);
    con = rb_str_new(at, length);
    con = multiline_strip(con);
    rb_funcall(con, rb_intern("strip!"), 0);
    rb_funcall(kw, rb_intern("strip!"), 0);
  
negative.code:           const char *at, size_t length, 
            int current_line)
  {
    VALUE con = ENCODED_STR_NEW(at, length);
    // Gherkin will crash gracefully if the string representation of start_col pushes the pattern past 64 characters
    char pat[32]; 
    snprintf(pat, 32, "^ {0,%d}", start_col); 
  