public List<scripture> searchForScrip(String line, Map<String, List<String>> map) {
        List<scripture> scriptures = new ArrayList<>();
        String temp = "";
        String book;
        int chapter;
        int firstVerse = 0;
        int lastVerse = 0;
        
        line = line.replace("(", "");
        line = line.replace(")", "");
        
        String scripturePattern = "(\\d*)\\s*([a-zA-Z&]{3,}+)\\s*(\\d+)(?::(\\d+))?(\\s*-\\s*(\\d+)(?:\\s*([a-zA-Z&]{3,}+)\\s*(\\d+))?(?::(\\d+))?)?|(\\S+ chapter \\d)";
        Pattern pattern1 = Pattern.compile(scripturePattern);
        Matcher matchPattern1 = pattern1.matcher(line);
        
        while(matchPattern1.find()) {
              
              temp = matchPattern1.group(0);
              
              book = "";
              chapter = 0;
              firstVerse = 0;
              lastVerse = 0;     
              
              if (matchPattern1.group(1) == null){
                  book = matchPattern1.group(0);
                  book = book.replace(" chapter", "");
                  String[] parts = book.split(" ");
                  book = parts[0];
                  chapter = Integer.parseInt(parts[1]);
              }
              
              if (matchPattern1.group(1) != null) {
                  if (matchPattern1.group(1).isEmpty()) {
                    book = matchPattern1.group(2);
                    book = book.replace("\\s+", "");
                  } else {
                  book = matchPattern1.group(1) + " " + matchPattern1.group(2);
                }
              }
              
              if (matchPattern1.group(3) != null) {
                  chapter = Integer.parseInt(matchPattern1.group(3));
              }
              
              if (matchPattern1.group(4) != null) {
                  firstVerse = Integer.parseInt(matchPattern1.group(4));
              }
              
              if (matchPattern1.group(6) != null) {
                  lastVerse = Integer.parseInt(matchPattern1.group(6));
              }
              
              scripture thisScripture = new scripture(book, chapter, firstVerse, lastVerse);
              
              if (isScriptureValid(book,map) && !scriptures.contains(thisScripture)) {
                scriptures.add(thisScripture);
              }
        }
       
        return scriptures;
    }