// Path: freya/freya-annotate/src/main/java/org/freya/rdf/query/CATConstants.java
// public class CATConstants {
// 
//   public static String TYPE_INSTANCE = "instance";
// 
//   public static String FEATURE_INSTANCE_URI = "instanceURI";
// 
//   /* used to set feature names for Lookups inside OntoRootGaz */
//   public static String FEATURE_URI = "URI";
//   public static String FEATURE_TYPE_CLASS = "class";
//   
//   public static String FEATURE_PROPERTY_URI = "propertyURI";
// 
//   public static String FEATURE_PROPERTY_VALUE = "propertyValue";
// 
//   public static String FEATURE_HEURISTIC_LEVEL = "heuristic_level";
// 
//   public static String FEATURE_HEURISTIC_VALUE = "heuristic_value";
// 
// 
// 
//   public static String CLASS_URI = "classURI";
// 
//   public static String CLASS_URI_LIST = "classURIList";
// 
//   public static String TYPE_PROPERTY = "property";
// 
//   public static String TYPE_DATATYPE_PROPERTY_VALUE = "datatypePropertyValue";
// 
//   public static String ANNOTATION_TYPE_ONTORES = "OntoRes";
// 
//   public static String ANNOTATION_TYPE_ONTORESCHUNK = "OntoResChunk";
// 
//   /** used to set feature names for Lookups inside OntoRootGaz */
//   public static String TYPE_FEATURE = "type";
// 
//   /**
//    * Name of the common logger
//    */
// 
//   public static String LOGGER_OUPUT_LEVEL = "2000";
// 
//   /** separator used during formatting of results */
//   public static String NEW_LINE =System.getProperty("line.separator");// "\n";
// 
//   public static String REGEX_CAMEL_CASE = "[a-z][A-Z]";
// 
// }


import org.apache.oro.text.awk.AwkCompiler;
import org.apache.oro.text.awk.AwkMatcher;
import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.MatchResult;
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.PatternMatcherInput;
import org.apache.oro.text.regex.StringSubstitution;
import org.apache.oro.text.regex.Substitution;
import org.apache.oro.text.regex.Util;
import org.freya.rdf.query.CATConstants;

        // Create AwkCompiler and AwkMatcher instances.
        compiler = new AwkCompiler();
        matcher = new AwkMatcher();
        // Attempt to compile the pattern. If the pattern is not valid,
        // report the error and exit.
        try {
            pattern = compiler.compile(regularExpression);
        } catch (MalformedPatternException e) {
            System.err.println("Bad pattern.");
            System.err.println(e.getMessage());
            System.exit(1);
        }
        input = new PatternMatcherInput(inputString);
        // System.out.println("\nPatternMatcherInput: " + input);
        while (matcher.contains(input, pattern)) {
            result = true;
        }
        return result;
    }

    /**
     * Main method for testing.
     * 
     * @param args
     */
    public static final void main(String args[]) {
        String inputString = "camelCaseDetection";

        String inputString1 = "AI";
        String resultString = findAndSeparateCamelCases(inputString1,

// Path: freya/freya-annotate/src/main/java/org/freya/rdf/query/CATConstants.java
// public class CATConstants {
// 
//   public static String TYPE_INSTANCE = "instance";
// 
//   public static String FEATURE_INSTANCE_URI = "instanceURI";
// 
//   /* used to set feature names for Lookups inside OntoRootGaz */
//   public static String FEATURE_URI = "URI";
//   public static String FEATURE_TYPE_CLASS = "class";
//   
//   public static String FEATURE_PROPERTY_URI = "propertyURI";
// 
//   public static String FEATURE_PROPERTY_VALUE = "propertyValue";
// 
//   public static String FEATURE_HEURISTIC_LEVEL = "heuristic_level";
// 
//   public static String FEATURE_HEURISTIC_VALUE = "heuristic_value";
// 
// 
// 
//   public static String CLASS_URI = "classURI";
// 
//   public static String CLASS_URI_LIST = "classURIList";
// 
//   public static String TYPE_PROPERTY = "property";
// 
//   public static String TYPE_DATATYPE_PROPERTY_VALUE = "datatypePropertyValue";
// 
//   public static String ANNOTATION_TYPE_ONTORES = "OntoRes";
// 
//   public static String ANNOTATION_TYPE_ONTORESCHUNK = "OntoResChunk";
// 
//   /** used to set feature names for Lookups inside OntoRootGaz */
//   public static String TYPE_FEATURE = "type";
// 
//   /**
//    * Name of the common logger
//    */
// 
//   public static String LOGGER_OUPUT_LEVEL = "2000";
// 
//   /** separator used during formatting of results */
//   public static String NEW_LINE =System.getProperty("line.separator");// "\n";
// 
//   public static String REGEX_CAMEL_CASE = "[a-z][A-Z]";
// 
// }


// Path: freya/freya-annotate/src/main/java/org/freya/regex/ExpressionFinder.java
import org.apache.oro.text.awk.AwkCompiler;
import org.apache.oro.text.awk.AwkMatcher;
import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.MatchResult;
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.PatternMatcherInput;
import org.apache.oro.text.regex.StringSubstitution;
import org.apache.oro.text.regex.Substitution;
import org.apache.oro.text.regex.Util;
import org.freya.rdf.query.CATConstants;

        // Create AwkCompiler and AwkMatcher instances.
        compiler = new AwkCompiler();
        matcher = new AwkMatcher();
        // Attempt to compile the pattern. If the pattern is not valid,
        // report the error and exit.
        try {
            pattern = compiler.compile(regularExpression);
        } catch (MalformedPatternException e) {
            System.err.println("Bad pattern.");
            System.err.println(e.getMessage());
            System.exit(1);
        }
        input = new PatternMatcherInput(inputString);
        // System.out.println("\nPatternMatcherInput: " + input);
        while (matcher.contains(input, pattern)) {
            result = true;
        }
        return result;
    }

    /**
     * Main method for testing.
     * 
     * @param args
     */
    public static final void main(String args[]) {
        String inputString = "camelCaseDetection";

        String inputString1 = "AI";
        String resultString = findAndSeparateCamelCases(inputString1,

                        CATConstants.REGEX_CAMEL_CASE, " ");
